我正嘗試在我的Java應用程序中使用RemoveDrive.exe,found here。我把它放在我的JAR中,然後使用下面的代碼將它解壓到一個臨時文件中,但是當我嘗試運行它時,我得到一個IOException
,它說CreateProcess error=5, Access is denied
。該程序通常不需要管理員權限。關於什麼可能導致這個問題的任何想法?嘗試執行%ApplicationData中的.exe時訪問被拒絕%
File RDexe = File.createTempFile("rmvd", ".exe");
InputStream exesrc = (InputStream) GraphicUI.class.getResource("RemoveDrive.exe").openStream();
FileOutputStream out = new FileOutputStream(RDexe);
byte[] temp = new byte[1024];
int rc;
while((rc = exesrc.read(temp)) > 0)
out.write(temp, 0, rc);
exesrc.close();
out.close();
RDexe.deleteOnExit();
// run executable
Runtime runtime = Runtime.getRuntime();
System.out.println(RDexe.getPath() + " " + "F:\\" + " -b -s");
Process proc = runtime.exec(RDexe.getPath() + " " + "F:\\" + " -b");
InputStream is = proc.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line; boolean ejected = false;
while((line = reader.readLine()) != null)
if(line.equalsIgnoreCase("failed")) ejected = false;
else if(line.equalsIgnoreCase("success")) ejected = true;
reader.close();
is.close();
更新:如果我啓用內置的Administrator帳戶(net user administrator /active:yes
),一切工作正常,從那裏。但是,如果我在標準帳戶中右鍵單擊並以管理員身份運行,我仍然會得到該錯誤,UAC甚至不會請求許可。
編輯:看到好像賞金也接近尾聲,請參閱my SuperUser question這幫助我解決這個問題......我會頒發的獎金,並很快接受一個答案。
也許檢查http://stackoverflow.com/questions/6674431/possible-causes-of-java-io-ioexception-createprocess-error-5 – demongolem
@demongolem我知道這個問題的信息。它不幫我解決我的問題,雖然 – Andy