首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用java类选择和写入外部windows控制台

在Java中,可以使用ProcessBuilder类来选择和写入外部Windows控制台。ProcessBuilder类提供了一种创建和管理外部进程的方式。

以下是使用Java类选择和写入外部Windows控制台的步骤:

  1. 导入java.iojava.util包中的相关类:
代码语言:txt
复制
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
  1. 创建一个ProcessBuilder对象,并设置要执行的命令:
代码语言:txt
复制
ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe");
  1. 启动外部进程并获取其输入流:
代码语言:txt
复制
Process process = processBuilder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
  1. 使用Scanner类从控制台读取用户输入的命令:
代码语言:txt
复制
Scanner scanner = new Scanner(System.in);
System.out.print("请输入命令:");
String command = scanner.nextLine();
  1. 将用户输入的命令写入外部进程的输出流:
代码语言:txt
复制
process.getOutputStream().write(command.getBytes());
process.getOutputStream().flush();
  1. 读取外部进程的输出结果并打印:
代码语言:txt
复制
String line;
while ((line = reader.readLine()) != null) {
    System.out.println(line);
}
  1. 关闭输入流、输出流和外部进程:
代码语言:txt
复制
reader.close();
process.getOutputStream().close();
process.destroy();

完整的示例代码如下:

代码语言:txt
复制
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class ExternalConsole {
    public static void main(String[] args) {
        try {
            ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe");
            Process process = processBuilder.start();
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));

            Scanner scanner = new Scanner(System.in);
            System.out.print("请输入命令:");
            String command = scanner.nextLine();

            process.getOutputStream().write(command.getBytes());
            process.getOutputStream().flush();

            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }

            reader.close();
            process.getOutputStream().close();
            process.destroy();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

这样,你就可以使用Java类选择和写入外部Windows控制台了。请注意,这只是一个简单的示例,实际应用中可能需要更多的错误处理和安全性考虑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java 对象,如何定义Java中的如何使用Java中的对象,变量

参考链接: Java中的对象 1.对象的概念 :万物皆对象,客观存在的事物皆为对象  2.什么是面向对象:人关注一个对象,实际上是关注该对象的事务信息   3.是模子,确定对象将会拥有的特征(...属性)行为(方法)              的特点:是对象的类型,具有相同属性方法的一组对象的集合  4。...对象是一个你能够看得到,摸得着的具体实体    如何定义Java中的:  1.的重要性:所有Java程序都以class为组织单元  2.什么是是模子,确定对象将会拥有的特征(属性)行为(方法...)  3.的组成:属性方法  4.定义一个的步骤:      a.定义名        b.编写的属性          c.编写的方法      public class 名 {   ...方法n;                                           }   Java对象  使用对象的步骤:  1.创建对象:      名 对象名 = new 名();

6.9K00

如何使用 Java lambda 语法外部规则引擎开发定制应用程序

在本文中,我们试图说明如何利用 Java 的固有特性,用尽可能简单的方式实现外部化规则,而不局限于附加框架的任何传递依赖。...放置位置选择广泛,如下均可选择: 一个本地磁盘上的文件 。 一个数据库(包括 SQL NoSQL)。 一个远程网络位置(如 HTTP URL、原始 TCP 套接字等)。...入门指南 虽然传统来说,在开始使用 SDK 之前我们最好先了解一下它的结构,但为了方便简单,我们颠倒了顺序。在本节中,我们将通过简单的问题陈述或用例来说明规则是如何外部化的。...然后在所有可用存储选项中选择最简单的一个,将规则存储在本地磁盘的一个文件中。SDK 帮助加载执行这些规则。...这个方法getConfigStream()返回一个 java.io.inputStream。它提供了从任何地方加载原始字节的灵活性。 我们将简短说明如何从几个主要的常用的源代码加载规则。

66420
  • 如何使用OutputStream实现文件的读写操作?

    摘要本文将介绍使用Java中的OutputStream进行文件、网络、控制台的输出操作,并会分析该类的优缺点。...输出流通过System.out获取,然后将字符串转换为字节数组,使用write方法将字节数组写入控制台。最后通过flushclose方法刷新并关闭输出流。...需要注意的是,这里的文件控制台的输出流类型都是OutputStream,这个抽象提供了写入字节数据的通用方法,实际使用时需要根据具体需求选择不同的OutputStream子类进行实例化。...我们学习了如何使用OutputStream将数据写入文件、网络、控制台等目的地,并分析了该类的优缺点。最后,我们提供了一个OutputStream的测试用例。...我们学习了如何使用OutputStream将数据写入文件、网络、控制台等目的地,并分析了该类的优缺点。此外,本文还提供了一个OutputStream的测试用例。

    55451

    Java 从入坑到放弃】No 1. Java 开发环境搭建

    前言 要进行 Java 开发,那怎么能少得了 JDK 呢,那么就首先来教大家如何安装并配置 JDK; 2....然后根据自己的系统来进行选择,此处以 Windows 10 64 位为例; 点击最后的连接后,它会让你同意协议,勾选同意,然后登陆你的 Oracle 账户即可开始下载,若是没有 Oracle 账户,点击下面的创建一个即可...运行命令 java 打开命令控制台Windows + R,然后输入 cmd 回车),然后输入如上三个命令,如果安装成功,一般是会出现如下内容的; 2.2 macOS 2.2.1 安装 首先去 官网下载...: 打开的编辑器(推荐 VS Code),如果没有,记事本也成,然后写入如下内容,然后保存为 Main.java; public class Main{ public static void main...总结 好了,今天的内容到此就结束了,主要介绍了如何Windows macOS 中安装 JDK,以及如何写我们的第一个 Hello World 程序。

    34430

    笔耕不辍:深入理解Java的Writer

    以下是Writer应用场景的一些案例:将数据写入文件以下示例展示了如何使用Writer将数据写入文件:package com.example.javase.io.writer;import java.io.FileWriter...如上案例测试结果如下:将数据在控制台输出  使用Writer可以将字符输出到控制台。...可以使用OutputStreamWriter将字符流转换为字节流,然后使用PrintWriter将数据写入控制台。...以下示例展示了如何使用Writer将数据输出到控制台,代码如下: //将数据在控制台输出 public static void testFilePrint() { Writer...全文小结  本文介绍了Java中的Writer,包括其实现、应用场景、优缺点分析常用方法等。我们还演示了如何使用Writer将数据写入文件网络流中。

    28221

    开心档之Java 为 IO

    Java 流(Stream)、文件(File)IO Java.io 包几乎包含了所有操作输入、输出需要的。所有这些流代表了输入源输出目标。...控制台输出 在此前已经介绍过,控制台的输出由 print( ) println() 完成。这些方法都由 PrintStream 定义,System.out 是该类对象的一个引用。.../O 还有一些关于文件I/O的,我们也需要知道: File Class() FileReader Class() FileWriter Class() ---- Java中的目录 创建目录:...注意: Java 在 UNIX Windows 自动按约定分辨文件路径分隔符。如果你在 Windows 版本的 Java使用分隔符 (/) ,路径依然能够被正确解析。...下面展示的例子说明如何使用 list() 方法来检查一个文件夹中包含的内容: DirList.java 文件代码: import java.io.File; public class DirList

    29410

    开心档之Java 流(Stream)、文件(File)IO

    Java 流(Stream)、文件(File)IO Java.io 包几乎包含了所有操作输入、输出需要的。所有这些流代表了输入源输出目标。...控制台输出 在此前已经介绍过,控制台的输出由 print( ) println() 完成。这些方法都由 PrintStream 定义,System.out 是该类对象的一个引用。.../O 还有一些关于文件I/O的,我们也需要知道: File Class() FileReader Class() FileWriter Class() ---- Java中的目录 创建目录:...注意: Java 在 UNIX Windows 自动按约定分辨文件路径分隔符。如果你在 Windows 版本的 Java使用分隔符 (/) ,路径依然能够被正确解析。...下面展示的例子说明如何使用 list() 方法来检查一个文件夹中包含的内容: DirList.java 文件代码: import java.io.File; public class DirList

    26910

    开心档之Java 流(Stream)、文件(File)IO

    Java 流(Stream)、文件(File)IO图片Java.io 包几乎包含了所有操作输入、输出需要的。所有这些流代表了输入源输出目标。...Java Scanner 来获取控制台的输入。...控制台输出在此前已经介绍过,控制台的输出由 print( ) println() 完成。这些方法都由 PrintStream 定义,System.out 是该类对象的一个引用。...注意: Java 在 UNIX Windows 自动按约定分辨文件路径分隔符。如果你在 Windows 版本的 Java使用分隔符 (/) ,路径依然能够被正确解析。...下面展示的例子说明如何使用 list() 方法来检查一个文件夹中包含的内容:DirList.java 文件代码:import java.io.File; public class DirList {

    47320

    Java 开发环境搭建及入门程序

    这里主要以 Windows macOS 系统中 JDK 的安装为例,一来因为考虑到大家用的最多的还是 Windows macOS 系统,二来则是因为手边没有安装 Linux 图形化系统。...Windows 安装 首先进入 Oracle 官网[2],然后找到自己想要的 JDK 版本,这边以 JDK 11 为例; 点击 JDK Download 后,它会跳转到具体下载页面,然后根据自己的系统来进行选择...下面就来进行具体实践: 打开编辑器(推荐 VS Code),如果没有,记事本也成,然后写入如下内容,然后保存为 Main.java,这里文件名一定要是 Main,文件后缀名为 .java。...Java 关键字,表示这是一个; Main:表示我们的名,在保存时文件一定要和它同名,否则你的程序是编译不了的。...换成你想要打印的内容试试看; 总结 好了,今天的内容到此就结束了,主要介绍了如何Windows macOS 中安装 JDK,具体过程可以总结如下: 安装 配置 验证 然后编写了我们的第一个

    27130

    Java 第一步,Hello World 来相助!

    你的第一个 Java 程序:HelloWorld 6. 知识点说明 1. 前言 要进行 Java 开发,那怎么能少得了 JDK 呢,那么就首先来教大家如何安装并配置 JDK; 2....配置 JDK 好了,经过上面的配置,我们的 JDK 就已经安装好了,但是这个使用你是用不了的,我们还需要进一步的配置; 打开系统属性来进行环境变量配置,打开系统属性并进行配置的方式如下: Windows...打开命令控制台Windows + R,然后输入 cmd 回车),然后输入如上三个命令,如果安装成功,一般是会出现如下内容的; 5....: 打开的编辑器(推荐 VS Code),如果没有,记事本也成,然后写入如下内容,然后保存为 Main.java; public class Main{ public static void main...Java 关键字,表示这是一个; Main:表示我们的名,在保存时文件要和它同名,否则你的程序是编译不了的。

    36230

    Kafka快速上手(2017.9官方翻译)

    由于Kafka控制台脚本在基于UnixWindows平台上不同,因此在Windows平台上使用bin\windows\而不是bin/更改脚本扩展名.bat。...“leader”是负责给定分区的所有读取写入的节点。每个节点将成为随机选择的分区部分的引导者。 “replicas”是复制此分区的日志的节点列表,无论它们是领先者还是现在都是活着的。...... > kill -9 7564 在Windows使用: > wmic process get processid,caption,commandline | find "java.exe"...Kafka Connect导入/导出数据 从控制台编写数据并将其写回控制台是一个方便的开始的地方,但您可能希望使用其他来源的数据或将数据从卡夫卡导出到其他系统。...在这个快速启动中,我们将看到如何使用从文件导入数据到Kafka主题并将数据从Kafka主题导出到文件的简单连接器运行Kafka Connect。

    79520

    JAVA学习第四十七课 — IO流(一):文件的读写

    输入流输出流相对于内存 将外部设备的数据读取到内存中:输入 将内存中的数据写入外部设备中:输出 IO流经常使用 字节流的抽象基:InputStream,OutputStream 字符的抽象基:...,且将数据从内存写到硬盘上应该是Writer FileWriter 演示:将文字储存到硬盘上(FileWriter) import java.io.FileWriter; import java.io.IOException...会覆盖 FileWriter fw = new FileWriter("Demo.txt");//抛异常 //调用Writer中的write方法,写入数据,但实际上数据写入的是暂时储存缓冲区中...new FileWriter("Demo.txt",true); //构造函数,中加个true能够实现对文件的续写 fw.write("你好"+LINE_SEPARATOR+"世界");//Windows...读取一个文本文件,并将读取出来的数据打印到控制台 import java.io.FileReader; import java.io.IOException; public class Main {

    28820

    【第二期】一次学透java.io

    所以,如何在语言的层面进行统一的抽象就显得至关重要了。Java使用了输入输出流这个概念来对所有的数据进行抽象。 根据数据流向的不同,又分为输入流输出流。...输入流是指数据从外部流入当前Java程序,而输出流是指数据从当前的Java程序流出到外部。...标准输入输出错误 大家知道,在控制台程序中,有三个可以进行输入输出的通道,我们通常称之为标准输入,标准输出标准错误。在C语言中,我们会以stdin, stdout, stderr来代指。...以OutputStream为例,它的几个子类,PrintStream可以向控制台上输出字节,FileOutputStream可以向文件中写入字节,SocketOutputStream可以向网络连接上写入字节...Scanner 文章的最后,我还想额外提一下Scanner。这是一个用于输入的辅助,是从Java1.5开始引入的。在那之前,如果我想从标准输入里读两个数,并把它们的打出来。

    758100

    滚雪球学Java(04):JDK、IntelliJ IDEA的安装环境变量配置

    所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~环境说明:Windows 10 + IntelliJ IDEA 2021.3.2 + Jdk 1.8前言Java是一种跨平台的编程语言,使用范围广泛,...你们如果有命令执行结果不一样的,或者提示"javac不是内部或外部命令"或者"java不是内部或外部命令"等提示的,这就说明前三步还是没有配置好,检查下环境变量”中配置Java环境变量的路径。...在其中的main方法中,使用System.out.println方法打印出了"Hello World"的字符串。这段代码的作用是在控制台输出"Hello World"。...这段代码是一个Java程序,它定义了一个名为HelloWorldTest的。在其中的main方法中,使用System.out.println方法打印出了"Hello World"的字符串。...这段代码的作用是在控制台输出"Hello World"。小结  本文主要介绍了JDKIntelliJ IDEA的安装与配置,以及环境变量的配置方法。

    56921

    利用原生库JNI(Java原生接口)实现H2数据库漏洞利用

    这是在最近的一次参与中遇到的情况,Windows系统上的H2数据库引擎实例版本1.2.141公开了其Web控制台。...我们希望通过使用原生库(.dll或.so)Java原生接口(JNI),找到一种新的方法来执行任意Java代码,而无需在目标服务器上使用Java编译器。...但是,CREATE ALIAS … FOR … 命令可以使用: 当引用一个方法时,必须已经被编译并包含在运行数据库的路径中。仅支持静态Java方法;方法都必须是公共的。...但如何将库加载到H2服务器上呢?虽然Windows上的Java支持UNC路径并提取文件,但其拒绝实际加载它。而且这在Linux上也不起作用。那么,如何将文件写入H2服务器呢?...使用 H2 写入任意文件 在查看研究了一些H2函数后,我们发现了一个FILE_WRITE文件写入函数。不幸的是,FILE_WRITE是在1.4.190中引入的。

    1.2K30

    速读原著-Java核心技术(安装Java开发工具包)

    第 2 章 Java 程序设计环境 本章主要介绍如何安装 Java 开发工具包( JDK ) 以及如何编译运行不同类型的程序:控制台程序、 图形化应用程序以及 applet。...然而, 很多程序员更喜欢使用集成开发环境。 为此,将在稍后介绍如何使用免费的开发环境编译运行 Java 程序。尽管学起来很容易, 但集成开发环境需要吞噬大量资源, 编写小型程序时也比较烦琐。... Windows 提供了 Java 开发工具包( JDK ) 的最新、 最完整的版本。...对于 Windows 或 Linux, 需要在 x86 ( 32 位) x64 ( 64 位)版本之间做出选择。应当选择与你的操作系统体系结构匹配的版本。...对于 Linux, 还可以在 RPM 文件 .tar.gz 文件之间做出选择。我们建议使用后者,可以在你希望的任何位置直接解压缩这个压缩包。 现在你已经了解了如何选择适当的 JDK。

    1.3K20

    Java如何实现控制台输出结果转换为变量

    前言 在Java编程中,有时需将控制台的输出捕获为字符串,以便于后续的处理或测试,这种需求在日志记录、单元测试或调试时尤为常见。写本文主要是因为需求是获取控制台打印的字符串进行保存问题。...下面,将通过详细步骤来介绍如何使用ByteArrayOutputStreamPrintStream来实现这一功能。 1....而PrintStream是Java标准库中的一个,用于将格式化的输出写入到一个输出流中,通常用于将信息打印到控制台。 2....然后,将System.out(即标准输出)的引用保存到一个临时变量oldStream中,并将System.out设置为cacheStream,这样所有原本打印到控制台的信息都会被写入到baoStream...同时,它也可以用于调试或日志记录,以捕获程序的输出而不必依赖外部工具或文件。然而,需要注意的是,重定向系统输出可能会对程序的其他部分产生影响,因此在使用完毕后一定要及时恢复。

    12610
    领券