我運行Windows 7運行exe可執行,並有我試圖在Java中使用以下命令來運行exe文件時:錯誤試圖從運行對象在java中
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
所以我想我有權限問題。我將如何更改權限才能運行它?
EDIT2:
我試圖改變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
這是錯誤的假設?
你確定你的PATH包含'。'嗎? – lifus 2013-05-01 16:06:58
供參考!調用Runtime.getRuntime()EXEC(** ** cmdarray,NULL,DIR)。與開始時定義的** cmdArray **不同。 – NINCOMPOOP 2013-05-01 16:08:04
@NoobUnChained哦woops!那是一個錯字。在我的代碼中是正確的。 – user972276 2013-05-01 16:36:48