如何在Java中写入和读取命令行?

时间:2011-09-15 15:04:32

标签: java command-line command-line-interface

  

可能重复:
  Java external program

我正在尝试编写一个程序来在命令行上编写命令,

例如

;

  
    

IPCONFIG

  

然后获取命令的响应,所以我想将命令写入命令​​行并获得其响应。我在网上搜索过它,看到apache cli用于在Java中执行此操作,但实际上我并没有清楚地知道它是如何完成的。你能用几行代码或关于写作和阅读命令的教程来帮助我解决我的情况吗?

非常感谢你

3 个答案:

答案 0 :(得分:8)

您可以将其作为Process启动,然后按照here所述捕获流程的InputStream

Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("ipconfig"); // you might need the full path
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;

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

编辑:我从上面的链接复制了这段代码,但代码似乎错了。你不需要输出流吗? Edit2:没有。

  

的getInputStream()

     

获取子流程的输入流。流获取数据   从表示的过程的标准输出流传送出来   这个Process对象。

好的命名惯例......

答案 1 :(得分:0)

请参阅ProcessProcessBuilder类。

具体来说,您将创建一个ProcessProcess.getOutputStream()给出InputStream,您可以从中读取进程的输出内容。您还需要阅读Process.getErrorStream()以了解流程报告的任何错误。

答案 2 :(得分:0)

尝试输入用户值。

java.util.Scanner input = new Scanner( System.in);

System.out.println("Please Enter your Name: ");             
    String empName = input.nextLine();