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