我正在创建一个启动器,该启动器通过单击按钮启动一个游戏(用任何语言编写)。例如,游戏我尝试推出(用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