[英]error when trying to execute exe from Runtime object in java
我正在運行Windows 7,並且正在嘗試使用Java中的以下命令運行一個exe文件:
File dir = new File("C:\\PATH\\TO\\DIR");
String[] cmdArray = {"file.exe"};
if(dir.exists()){
for(String s : dir.list()){
if(s.equals(cmdArray[0]))
System.out.println("File exists!");
}
}
Runtime.getRuntime().exec(cmdArray,null,dir);
exec(...)命令給我這個錯誤:
Cannot run program "file.exe" (in directory "C:\PATH\TO\DIR"): CreateProcess error=2, The system cannot find the file specified
上面的代碼確實打印出“文件已存在!” 因此文件就在那里,Java知道它在那里。 我不知道這怎么可能。
另外,我需要使用Runtime.getRuntime()。exex(...)。 該調用實際上在另一個我不希望更改的方法內,因此替代解決方案對我不起作用。 提前致謝!
編輯:我在沒有管理員權限的cmd窗口中運行文件,並收到以下消息:
Error in Opening Configuration File in Read Mode
所以我想我有權限問題。 我將如何更改權限才能運行它?
編輯2:
我嘗試將cmdArray更改為此:
String[] cmdArray = {"C:\\PATH\\TO\\DIR\\file.exe"};
它就像一種魅力。 不過有一個問題。 為什么這樣做有效,但反之則不行呢? 我假設Runtime.exec()像cmd wibndow一樣以較高的級別運行:
pushd dir
cmdArray[0] cmdArray[1] cmdArray[2] ... cmdArray[length - 1]
popd dir
這是錯誤的假設嗎?
您在C驅動器中存在權限問題。通過在C驅動器中手動執行"file.exe"
進行檢查。更好的解決方案是將"file.exe"
保留在C驅動器以外的其他位置並從那里執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.