Java 응용 프로그램에서 RemoveDrive.exe, found here을 사용하려고합니다. 내 JAR 파일이 있고 다음 코드를 사용하여 임시 파일로 압축을 풀고 있는데, 실행하려고하면 IOException
은 CreateProcess error=5, Access is denied
이됩니다. 프로그램은 일반적으로 관리자 권한이 필요하지 않습니다. 문제를 일으킬 수있는 아이디어가 있습니까?% AppData에서 .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();
업데이트 : 기본 제공 관리자 계정 (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