【发布时间】:2016-03-05 12:49:06
【问题描述】:
我想创建一个可以编译和运行外部程序的应用程序。为此,我需要从命令提示符运行编译器命令(javac 和 gcc 等命令)。 我尝试了这里给出的方法 - Run cmd commands through java
这是我的代码
import java.io.*;
public class Main
{
public static void main(String[] args) throws Exception
{
ProcessBuilder builder=new ProcessBuilder(
"cmd.exe","javac F://Test.java","java -cp F:// Test");
builder.redirectErrorStream(true);
builder.start();
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
try
{
while (true)
{
line = r.readLine();
if (line != null)
System.out.println(line);
}
}
catch(Exception e){}
}
}
但是当我运行它时,它只是执行第一个命令(cmd.exe),显示这个输出:
Microsoft Windows [版本 6.3.9600] (c) 2013 年微软公司。保留所有权利。
然后它会无限期地等待。我在这里做错了什么?
编辑- 我的问题被确定为这个问题的重复 - Start CMD by using ProcessBuilder 。但我相信这个问题询问如何从 java 代码启动 cmd。我也需要我的程序来执行 cmd 命令。例如。我想在启动 cmd 进程后执行 javac 命令。
【问题讨论】:
-
cmd /c ...执行其他应用程序...