我正在創建一個啓動器,該啓動器通過單擊按鈕啓動一個遊戲(用任何語言編寫)。例如,遊戲我嘗試推出(用Python編寫的掃雷艇)之一,是無法成功啓動和我的代碼生成以下消息:在java中啓動單獨進程,無法找到.png文件
../Games/minesweeper/Minesweeper.py成功推出
回溯(最近通話最後一個):
文件 「../Games/minesweeper/Minesweeper.py」,線路455,在
app = Minesweeper()
文件 「../Games/minesweeper/Minesweeper.py」,第30行,在初始化
self.loadImages()
文件 「../Games/minesweeper/Minesweeper.py」,線71,在loadImages
self.images[1] = PhotoImage(file="1.png")
文件 「/usr/lib64/python3.3/tkinter/ 初始化 py」 爲,線3425,在初始化
Image.__init__(self, 'photo', name, cnf, master, **kw)
文件 「/usr/lib64/python3.3/tkinter/ 初始化 py」 爲,線3381,在初始化
self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError:無法打開 「1.png」:沒有這樣的文件或目錄
過程exitValue:1
我能,但是隻要我的Java代碼運行這個遊戲作爲一個獨立的,啓動EXEC。 「無法打開‘1.png’回到這裏是我的過程創建代碼:
public void createProcess(String path)
{
Process cmd;
try
{
cmd = Runtime.getRuntime().exec(path);
System.out.println(path + " successful launch");
InputStream stderr = cmd.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(cmd.getInputStream()));
String line = null;
System.out.println("<ERROR>");
while ((line = br.readLine()) != null)
{
System.out.println(line);
}
System.out.println("</ERROR>");
int exitVal = cmd.waitFor();
System.out.println("Process exitValue: " + exitVal);
}
catch (IOException e)
{
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
任何幫助將不勝感激謝謝
使用'ProcessBuilder'並更改開始目錄以反映您嘗試執行的文件的位置... – MadProgrammer 2014-11-24 03:42:10
完美工作!謝謝 – user1243 2014-11-24 04:29:25