我必须检查某些应用程序是否存在于不同的地方,以便在Windows上启动ProcessBuilder
。问题是我需要使用环境变量,直到我运行cmd.exe
才能解决。我有类似非工作代码的东西。
private static final String WIN_APP = "%USERPROFILE%/AppData/Local/App/app.exe";
...
File f1 = new File(WIN_APP);
if(f1.exists()) { ... };
...
你有任何提示吗?感谢。
答案 0 :(得分:3)
您不能直接在userprofile
变量值中预期环境变量WIN_APP
的值。
您应该对System.getenv("userprofile")
进行显式调用,并与所述变量的其他文本一起使用。
String userProfile = System.getenv("userProfile");
// hoping user profile is not null
String Win_App = userProfile + "/AppData/Local/App/app.exe";
答案 1 :(得分:1)
尝试:
private static final String WIN_APP =
System.getenv("userprofile") + "/AppData/Local/App/app.exe";
...