我需要運行在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行作爲參數傳遞。 –