我想从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));
在命令行中将当前目录设置为包含可执行文件的目录。再次,这不起作用,所以如果可能的话,任何指导都将受到赞赏
答案 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();