如何用exec在新开的进程中处理多个cmd命令?Runtime.getRuntime().exec("javac Test.java \n java Test");
运行显示
错误:仅当显式请求注释处理时才接受类名称“java,Test”Runtime.getRuntime().exec(new String[]{"javac Test.java","java Test"});
运行则抛出异常
Exception in thread "main" java.io.IOException: Cannot run program "javac Test.j
ava": CreateProcess error=2, ?????????
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at Test.main(Test.java:8)
Caused by: java.io.IOException: CreateProcess error=2, ?????????
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 4 more
运行显示
错误:仅当显式请求注释处理时才接受类名称“java,Test”Runtime.getRuntime().exec(new String[]{"javac Test.java","java Test"});
运行则抛出异常
Exception in thread "main" java.io.IOException: Cannot run program "javac Test.j
ava": CreateProcess error=2, ?????????
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at Test.main(Test.java:8)
Caused by: java.io.IOException: CreateProcess error=2, ?????????
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 4 more
Test.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) throws IOException, InterruptedException {
Process p = Runtime.getRuntime().exec("cmd /c javac TestB.java & java TestB");
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
while((line=br.readLine()) !=null) {
System.out.println(line);
}
br.close();
}
}TestB.javapublic class TestB {
public static void main(String[] args) {
System.out.println("in TestB");
}}执行
output:
in TestBGood Luck!
以上改完如果不好用,你就把编译和执行分成两步来写!
cmd后
如果你直接在c:\document and...\下直接javac AA.java肯定会有问题的!