Process Builder无法使用AppData文件夹找到指定的路径

时间:2013-05-06 23:19:16

标签: java process processbuilder createprocess

这可能是一个简单的问题,我对Java很新,但在我的搜索中,我无法弄清楚为什么这段代码无效。

String execLoc = ((System.getenv("APPDATA"))+"\\ARcraft\\exec\\");

ProcessBuilder getCrafting = new ProcessBuilder("Minecraft.exe");
getCrafting.directory(new File(execLoc));
getCrafting.start();

当我跑步时,我回来了:

Cannot run program "Minecraft.exe" 
(in directory "C:\Users\andrew\AppData\Roaming\ARcraft\exec"): 
CreateProcess error=2, The system cannot find the file specified

我已阅读其他类似问题的帖子,并尝试了各种解决方案,但他们使用的修补程序似乎对我没有任何作用。我已经确认该文件存在,并且当在命令提示符中粘贴时,从程序反馈的目录执行时它正确运行。

2 个答案:

答案 0 :(得分:1)

将代码更改为此选项以便仅提取用户名而不是appdata路径:

ProcessBuilder getCrafting = new ProcessBuilder("C:\\Users\\" +
    System.getProperty("user.name") + 
    "\\AppData\\Roaming\\ARcraft\\exec\\Minecraft.exe");
getCrafting.start();

答案 1 :(得分:0)

let [key, value] = singleElement; // [1, 'one']命令中,exe文件应为exe文件的完整路径,然后它将起作用:

Map