2014-07-07 4 views
-1

.exe를 실행해야하는 상황에 있지만 매개 변수를 사용하여 실행해야하는 경우가 있습니다. 인수 그 자체이지만 커맨드 라인에서 시작할 수 없습니다. 내 exe를 인수로하여 javaw를 실행해야합니다. 예를 들어 :java에서 매개 변수로 EXE를 시작하는 방법 그러나 매개 변수가있는 경우

"C:\Program Files\Java\jre7\bin\javaw.exe" -jar "PATH/TO/.exe" 

그러나, "PATH/TO/.exe"-arg1-arg2 필요가있다. 경로 내부에 매개 변수를 배치하면 자바를 찾지 못하고 외부에 배치하면 자바 자체가 자기 생각에 속하고 사용하려고합니다.

EDIT : 완전히 다른 프로그램을 사용하기 때문에 java로 exe를 실행하고 있습니다. 나는 다른 자바 프로그램을 사용할 수 없다. 나는 함께해야만하는 것은 대상 상자 다. exe를 시작하도록 설계되었지만 java를 통해 exe를 실행해야합니다. 내가 사용해야하는 것은 exe가있는 곳에서 일반적으로 입력하는 경로 영역입니다.

+3

왜 자바를 사용하여'.exe '를 실행하려고합니까? – MadProgrammer

+1

나는 당신이 성취하려는 것을 확신하지 못합니다. 좀 더 명확하게 설명해 주시겠습니까? "PATH/TO/.exe"란 무엇입니까? javaw.exe 전에 실행됩니까? 아니면 항아리에 인수로 전달됩니까? –

+0

다른 Java 프로그램에 명령을 전달하려고한다는 뜻입니까? 'javaw.exe'는 Windows 실행 파일을 실행하지 않습니다. – MadProgrammer

답변

0

기본 요령은 다음과 같습니다 ARRAY_OF_EXE_AND_ARGUMENTS 먼저 실행 파일 경로 인 문자열 배열,이며, 다음

try { 
    final Process p = Runtime.getRuntime().exec(ARRAY_OF_EXE_AND_ARGUMENTS); 
    if (p == null) { 
     // some error 
     // probably command not found, abort. 
    } 

    try { 
     final int retval = p.exitValue(); 
     if (retval == 0) { 
      // Process ended immediately. 
      // Probably a problem, abort. 

     } else { 
      // Process crashed, abort. 

     } 
    } catch (final IllegalThreadStateException itse) { 
     // Process is running. 
     // all is good 
    } 
} catch (final IOException e) { 
    // Error running exe, abort. 
} 

이 명령 줄 인수입니다 있습니다.

자바에 EXE 및 argumetns를 전달하려면이 일반적인 패턴입니다 :

java -jar MyJar.jar "/path/to/virus.exe argument1 argument2" 

그리고 당신은 공간이나 뭔가를 분할합니다.

+1

'ProcessBuilder'는 선호하는 해결책이 될 것입니다. 출력을 리다이렉션하고 실행 컨텍스트를 변경하고 매개 변수를 공백으로 더 잘 조정할 수있게 해줍니다. – MadProgrammer

관련 문제