我需要运行在Java控制台应用程序命令Runnnig一个Java控制台应用程序:从另一个Java应用程序cosole
/usr/bin/java -Xms512m -Xmx3072m -jar /Users/ivan/Desktop/market/market.jar 500 500 1 1 0.1 true true /Users/ivan/Desktop/market/files/simulationResult/
我试过,但没有奏效:
Process child = Runtime.getRuntime().exec(new String[]{command}); // command is the string written above
我尝试了很多其他的东西,但我没有得到它。任何帮助?
顺便说一句,我使用Mac(如果它很重要)。
编辑:有了上面的代码,我得到以下错误:
Exception in thread "main" java.io.IOException: Cannot run program "java -Xms512m -Xmx3072m -jar /Users/ivan/Desktop/market/market.jar 500 500 1 1 0.1 true true /Users/ivan/Desktop/market/files/simulationResult/": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:466)
at SimulationStarter.main(SimulationStarter.java:59)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)
at java.lang.ProcessImpl.start(ProcessImpl.java:91)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
... 3 more
编辑#2:我现在就发,而不是字符串 “命令” 这样的:
String[] commands = new String[]{
"/bin/bash", "-c",
"\"/usr/bin/java -Xms512m -Xmx3072m -jar " + simulatorPath + " "
+ var1 + " "
+ var2 + " "
+ var3 + " "
+ var4 + " "
+ var5 + " "
+ var6 + " "
+ var7 + " "
+ var8 + " "
+ "\""
};
但我仍然得到/bin/bash: /usr/bin/java -Xms512m -Xmx3072m -jar /Users/ivan/Desktop/market/market.jar 500 500 2 1 0.1 true true /Users/ivan/Desktop/market : No such file or directory
。
child.waitFor()
返回数127
你有什么错误? – m0skit0
捕获该进程的输出/错误流并检查错误。然后回来的细节。 – Thomas
如何在Mac上启动控制台?您需要使用Process启动控制台,然后将java行作为参数传递。 –