2017-01-28 2 views
-1

내 프로그램에서 exe 파일을 실행해야합니다. ProcessBuilder를 사용하여 작업하고 있습니다. 난 단지 디렉토리와 exe 이름을 코드에 넣을 때, 프로세스가 정상적으로 실행되지만 인수를 넣고 싶습니다. 내가 그것을 시도 할 때 나는 Acces Denied 메시지로 예외를 얻고있다. 내 코드 :Java 8 Acces가 인수를 사용하여 프로세스를 실행하는 동안 거부되었습니다.

Process process = new ProcessBuilder("C:\\Directory", "file.exe", argument1).start(); 

무엇이 잘못 되었나요? 일을하지만 인수없이

내 이전 코드

이었다 : 내가 ProcessManager 시작 과정을 볼 수 있었다이 코드

String folder = "C:\\Directory"; 
String exe = "File.exe"; 
ProcessBuilder pb = new ProcessBuilder(); 
pb.command(folder + exe); 
pb.start(); 

.

+0

가 로그를 게시 할 수 있습니다 :

String folder = "C:\\Directory"; String exe = "File.exe"; 

그래서 '폴더 + EXE는'C:\DirectoryFile.exe 그래서 당신에 해당하는 코드이다? 및 [UAC를 사용하지 않도록 설정] (http://www.howtogeek.com/howto/windows-vista/disable-user-account-control-uac-the-easy-way-on-windows-vista/) –

+0

비활성화 된 UAC로 작업 – Higu

답변

1

코드가 허용되지 않는 C:\\Directory을 실행하려고합니다.

실행 파일의 전체 경로 때문에, 생성자에 첫 번째 인수에 있어야합니다 :

Process process = new ProcessBuilder("C:\\Directory\\file.exe", argument1).start(); 

C:\Directory\file.exe 가정되는 것은 당신이 실행해야하는 프로그램입니다.

업데이트 : 원래 코드에서, 당신은 :

Process process = new ProcessBuilder("C:\\DirectoryFile.exe", argument1).start(); 
+0

이 코드로이 프로세스를 ProcessManager에서 찾을 수 없습니다. 저의 이전 코드는 다음과 같습니다 : ProcessBuilder pr = new ProcessBuilder(); pr.command (folder + exe); folder가 exe.file이없는 Directory이고 exe가 .exe 파일이었을 때. – Higu

+0

그러나이 초기 코드는 인수를 사용하지 않았습니다. – Higu

+0

정확히 ** 실행하려고하는 대상은 무엇입니까? –

관련 문제