我正在使用 Runtime.exex() 类似的东西在 2 个单独的命令窗口(在 Windows 7 环境中)中调用 2 个不同的 java 程序。
public class Invoke{
public void main(...){
String[] class1 = {"start", "java", "A"}; //Assume A.java is already compiled
String[] class2 = {"start", "java", "B"}; //Assume B.java is already compiled
try{
Runtime.getRuntime().exec(class1);
Runtime.getRuntime().exec(class2);
}catch(Exception e){
e.printStackTrace();
}
}
}
但它给了我异常(exception)
java.io.IOException: Cannot run program "start": CreateProcess error=2, The syst
em cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at initialConfig.StartApp.win_startProg(StartApp.java:95)
at initialConfig.StartApp.main(StartApp.java:134)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find th
e file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
我是否需要创建一个单独的 .bat 文件来调用这两个程序,然后在 Runtime.exec() 中使用这些 bat?请帮忙。谢谢。
最佳答案
我认为start
是cmd.exe
的内部命令。所以尝试一下:
String[] class1 = {"cmd.exe", "/c", "start", "java", "A"};
这会导致在单独的进程和窗口中调用 java - 并且不会等待它终止。
关于java - 如何在 Windows 操作系统中使用 Runtime.exex() 从单个类的单独命令窗口中调用多个 java 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19750578/