这可能是一个简单的问题,我对 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
我读过其他有类似问题的帖子,并尝试了各种解决方案,但他们使用的修复似乎对我没有任何作用。我已确认该文件存在,并且在粘贴到命令提示符时从程序反馈的目录执行时它可以正确运行。
最佳答案
将代码更改为此,以便仅提取用户名而不是应用程序数据路径:
ProcessBuilder getCrafting = new ProcessBuilder("C:\\Users\\" +
System.getProperty("user.name") +
"\\AppData\\Roaming\\ARcraft\\exec\\Minecraft.exe");
getCrafting.start();
关于java - Process Builder 使用 AppData 文件夹找不到指定的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16408796/