我一直在搞乱运行一些.exe文件,好像有什么阻止它在appdata中运行它?
Runtime.getRuntime().exec(System.getenv("APPDATA") + "test.exe");
这是我得到的错误
java.io.IOException: Cannot run program "C:\Users\Cole": CreateProcess error=2, The system cannot find the file specified
答案 0 :(得分:1)
您不应该使用普通的exec(String)方法,因为它需要特定于操作系统的转义。如果你使用string array version,它应该找到可执行文件。
在将变量与文件名连接之前,检查变量是否存在以及是否以\
结尾也是一个好主意。或者更好地使用分层文件构造函数:
String appdata = System.getenv("APPDATA");
if (appdata == null || appdata.trim().isEmpty())
appdata=".";
String fileName = new File(appdata, "test.exe").getAbsolutePath();
Runtime.getRuntime().exec(new String[]{fileName /*, noargs */});
答案 1 :(得分:0)
一种简单的方法是使用File对象构建路径。
final String f = new File(System.getenv("APPDATA"), "test.exe").toString();
final Process p = Runtime.getRuntime().exec(new String[] { f });