2013-03-13 66 views
0

我正在嘗試使用ProcessBuilder從我的Java應用程序加載可執行文件。使用Java ProcessBuilder加載可執行文件

代碼:

String [] cmdArray = new String[1]; 
cmdArray[0] = mPathToFile + mGameArrayList.get(i).Directory + mGameArrayList.get(i).Executable; 

ProcessBuilder builder = new ProcessBuilder(cmdArray); 
final Process process = builder.start(); 
InputStream is = process.getInputStream(); 
InputStreamReader isr = new InputStreamReader(is); 
BufferedReader br = new BufferedReader(isr); 
String line; 
while ((line = br.readLine()) != null) { 
    System.out.println(line); 
} 

我試圖加載該.exe是一個小遊戲我已經把自己和編譯於2010年VS我所做的任何輸出錯誤控制檯在Java程序正在讀取BufferedReader,加載的.exe然後崩潰。我得到的錯誤告訴我,遊戲無法找到像mesh和紋理這樣的資源,這導致我相信我加載它錯了,因爲它通過雙擊它加載正常工作。是否有另一種方法來執行有資源需要運行的程序?

在此先感謝。

回答

2

可執行可能預計其工作目錄是它存在的目錄默認情況下,根據ProcessBuilder documentation

工作目錄。默認值是當前進程的當前工作目錄 ,通常是由 系統屬性user.dir命名的目錄。

添加一行您建造ProcessBuilder後設置當前的工作目錄:

builder.directory(new File(mPathToFile + mGameArrayList.get(i).Directory)); 

(假設串聯讓你的目錄中的可執行文件中)

+0

這做的工作,謝謝快速回復! – 2013-03-13 23:42:29

相關問題