2013-09-22 37 views
0
final String dir = "C:\\Users\\theo\\Desktop\\1.6 test\\craftbukkit.jar"; 
Process proc = Runtime.getRuntime() 
    .exec("java -Xmx1024M -jar "+ dir +" -o true PAUSE"); 

因此,我在這裏做了一些研究,但這東西顯然不工作/運行JAR文件。通過代碼運行jar - Java

+0

運行JAR文件?您可以在main方法是入口點的位置運行程序。 –

+1

閱讀(並實現)*所有* [當Runtime.exec()不會](http://www.javaworld.com/jw-12-2000/jw-1229-traps.html)的建議。這可能會解決問題。如果不是,它應該提供更多關於失敗原因的信息。然後忽略它引用'exec'並使用'ProcessBuilder'構建'Process'。還要將'String arg'分解爲'String [] args'來解釋其本身包含空格的參數。 –

回答

1

請注意罐子路徑中的空間。這意味着,在你建立的命令時,它會被視爲兩個參數:

java -Xmx1024M -jar C:\Users\theo\Desktop\1.6 test\craftbukkit.jar -o true PAUSE 

嘗試引用路徑建立這樣的命令:

java -Xmx1024M -jar "C:\Users\theo\Desktop\1.6 test\craftbukkit.jar" -o true PAUSE 
+0

嗯,我也試過這樣做,重命名文件夾和東西。似乎工作,但我沒有得到它的工作信號,只有在鼠標上的加載標誌 – Zarkopafilis

0
  1. 您需要提供Java可執行文件的完整路徑,而不僅僅是'java'。
  2. 假設有問題的程序行爲良好,您可以使用反射來調用jar主類中的main方法,而無需啓動新的JVM。
+0

已完成完整路徑。我想要背景 - 因爲我收到iputstream。現在它說無法訪問jarfile – Zarkopafilis

+0

您可能必須保護路徑中的空間(現在,它看起來像'C:\\ Users \\ theo \\ Desktop \\ 1.6'和'test \\ craftbukkit.jar'是單獨的參數)。 – chrylis

+0

也修正了這一點。現在我甚至沒有得到一個錯誤,也沒有反饋:) – Zarkopafilis