2012-03-31 64 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();