2012-12-03 3 views
0

.jar 파일을 Java로 실행하고 싶지만 예외가 발생하고 작동하지 않습니다. 디렉토리 C : /Users/Administrator/Desktop/apache-solr-4.0.0/example 디렉토리에 start.jar이라는 파일이 있습니다. 마지막 예제이지만 예외가 발생합니다. 문제를 해결하려면 무엇을해야합니까?Java에서 .jar 실행하기

public void runStart() { 
    try { 
     Runtime rt = Runtime.getRuntime(); 
     Process p = rt.exec("C:\\Users\\Administrator\\Desktop\\apache-solr-4.0.0\\example\\start.jar"); 
    } catch (IOException ex) { 
     Logger.getLogger(SolrForm.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 
+1

무엇이 오류입니까? 스택 스택을 게시하십시오. –

+0

java.io.IOException : "C : \ Users \ Administrator \ Desktop \ apache-solr-4.0.0 \ example \ start.jar"프로그램을 실행할 수 없습니다 : CreateProcess 오류 = 193, % 1은 Win32 application \t java.lang.ProcessBuilder.start (ProcessBuilder.java:1029) – user527

+0

당신은 .exe – wxyz

답변

3

당신은 그렇지 않으면 당신은 정말 아무것도 실행하지 않는 명령 줄에서 java -jar와 간부 인 할 필요가있다.

rt.exec("java -jar myjar.jar");

오, 프로세스가 완료 될 때까지 기다려야합니다. 그렇지 않으면 범위를 벗어난 경우 예기치 않게 종료 될 수 있습니다.

1

실행 가능한 응용 프로그램을 기록하는 파일 만 전달하고 있습니다. 자바 환경이 구성되어 있다고 가정하면,이에 줄을 변경해야합니다

rt.exec("c:\\java_path\\bin\\java -jar C:\\Users\\Administrator\\Desktop\\apache-solr-4.0.0\\example\\start.jar"); 

하면 자바 바이너리 실제 절대 경로로 c:\\java_path\\bin\\java를 교체해야합니다 :

Process p = rt.exec("java - jar C:\\Users\\Administrator\\Desktop\\apache-solr-4.0.0\\example\\start.jar"); 
+0

이 아닌 자바 응용 프로그램으로 실행해야합니다. 시도해 보았지만 예외는 없었지만 작동하지 않았습니다. ... – user527

+0

"java"명령이 발견 되었기 때문에 예외가 발생하지 않았습니다. 일어날 수있는 일은 응용 프로그램을 시작할 때의 예외입니다. 항아리가 존재하지 않을 수도 있습니다. 나는이 명령을 SO에서 실행하고 어떤 일이 발생하는지 살펴 보길 권한다. –

+0

다른 jar 파일에 대해이 명령을 사용했지만 예외가 발생하지 않았지만 응용 프로그램이 작동하지 않습니다 ... – user527

0

이 같은 뭔가 시도 .

+0

나는이 방법으로 예외를 얻지 못했지만 다시 시도하지 않았습니다. .. – user527

2

콘솔에서 해당 명령을 실행하려고해도 작동하지 않습니다. jar 파일 자체는 실행 파일이 아니지만 Java로 실행될 수 있습니다.

시도는 다음과 같이 그것을 할 수 있습니다 :

public void runStart() { 
    try { 
     Runtime rt = Runtime.getRuntime(); 
     Process p = rt.exec("java -jar C:\\Users\\Administrator\\Desktop\\apache-solr-4.0.0\\example\\start.jar"); 
    } catch (IOException ex) { 
     Logger.getLogger(SolrForm.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 

자바를 시작하는이 방법을, 당신이 그것을 항아리를 제공한다는. Java가 경로 (또는 현재 디렉토리)에 있으면 작동합니다.

관련 문제