1

我想在 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));

这将在命令行上将当前目录设置为包含可执行文件的目录。再次没有工作,所以如果可能的话,任何指导将不胜感激

4

2 回答 2

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();
于 2012-03-31T10:13:49.957 回答
0

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

例如:

final ProcessBuilder pb = new ProcessBuilder("C:/FolderName/SubFolderName/ExecutableFileName.exe");
pb.directory(new File("C:/FolderName/SubFolderName"));
final Process p = pb.start();
于 2016-02-16T11:21:02.107 回答