在Java中在单独的目录中执行.exe文件

时间:2012-03-31 09:20:09

标签: java executable working-directory launching-application

我想从Windows中的应用程序启动游戏。其中许多游戏都依赖本地文件进行配置。

目前这是我在应用程序之外运行/执行文件的方式

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));

在命令行中将当前目录设置为包含可执行文件的目录。再次,这不起作用,所以如果可能的话,任何指导都将受到赞赏

2 个答案:

答案 0 :(得分:3)

您想查看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();

答案 1 :(得分:0)

我遇到了类似的问题 - 不要忘记在ProcessBuilder实例中指定文件的完整路径。

例如:

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