2012-03-31 70 views
0

我想從Windows中的應用程序啓動遊戲。這些遊戲中的很多都依賴本地文件進行配置。用Java在獨立目錄中執行.exe文件

這是目前我如何運行/我的應用程序之外執行文件

Process r = Runtime.getRuntime().exec("cmd /c start " + gamePATH); 

我也嘗試過把gamePath的命令,但我仍然得到暈PC遊戲這個錯誤:

Cannot Find "C:\...Directory containing my Java app...\config.txt" 

Java執行時似乎是「當前目錄」是它運行的位置。我試過這個沒有進展:

Process a = Runtime.getRuntime().exec("cmd /c cd " + gamePATH.subSequence(0, gamePATH.lastIndexOf("\\")+1)); 

哪個會在命令行上設置當前目錄爲包含可執行文件的目錄。再次,這沒有奏效,所以如果可能的話,任何指導將不勝感激

+1

見[當的Runtime.exec()不會(http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps。 html)(並執行其中的建議)。 – 2012-03-31 09:28:04

回答

2

你想看看Process Builder。特別是,您想使用ProcessBuilder.directory(File)方法設置工作目錄。您使用start()方法執行它。

例如:

final ProcessBuilder pb = new ProcessBuilder("theExecutable"); 
pb.directory(new File("the/working/directory/path")); 
final Process p = pb.start(); 
+0

謝謝!我會看看它。 – 2012-03-31 18:50:54

0

我有一個類似的問題 - 不要忘記指定在的ProcessBuilder實例文件完整路徑。

例如:

final ProcessBuilder pb = new ProcessBuilder("C:/FolderName/SubFolderName/ExecutableFileName.exe"); 
pb.directory(new File("C:/FolderName/SubFolderName")); 
final Process p = pb.start();