2012-06-19 2 views
2

하나의 .jar로 만든 두 개의 간단한 프로그램을 병합하려고합니다. 나는 두 개의 .jar 파일을 새로운 파일로 압축하고 Runtime.getRuntime(). exec 메소드를 사용하여 파일을 실행했다.Java Runtime.getRuntime(). exec

코드 :

public class main { 
    public static void main(String[] args) { 
    try { 
     Runtime.getRuntime().exec("cmd /c proj1.jar"); 
    } catch(Exception exce){ 
     /*handle exception*/ 
     try { 
     Runtime.getRuntime().exec("cmd /c proj2.jar"); 
     } catch(Exception exc){ 
     /*handle exception*/ 

     } 
    } 
    } 
} 

문제는 proj1.jar가 실행되고 proj2.jar이 실행되지 않는다는 것입니다. 나는 자바를 처음 접했고 왜 이런 일이 일어날 지 모른다. 이 문제를 어떻게 해결할 수 있습니까? 두 파일이 모두 실행되기를 원합니다.

+0

당신이 확실합니까? 스택 추적을 인쇄 해 볼 수 있습니까? –

+0

몇 가지 예외가 있습니까? – JuanZe

답변

6

첫 번째 파일이 예외를 throw하면 두 번째 파일 만 실행됩니다. 당신이 찾고 :

public class main { 
    public static void main(String[] args) { 
    try { 
     Runtime.getRuntime().exec("cmd /c proj1.jar"); 
     Runtime.getRuntime().exec("cmd /c proj2.jar"); 
    } catch(Exception exce){ 
     /*handle exception*/ 
    } 
    } 
} 

또는 당신이 절대적으로 개별적으로 예외를 처리해야하는 경우,이 : 첫 번째는 예외를 throw하지 않는 경우

public class main { 
    public static void main(String[] args) { 
    try { 
     Runtime.getRuntime().exec("cmd /c proj1.jar"); 
    } catch(Exception exce){ 
     /*handle exception*/ 
    } 

    try { 
     Runtime.getRuntime().exec("cmd /c proj2.jar"); 
    } catch (Exception e) { 
     //handle the exception 
    } 
    } 
} 
+0

+1 원래 코드를 수정하면 모든 것이 바뀝니다! 나는 imbrication을 보지 못했습니다 ... –

+0

이것이 코드 포맷팅이 실제로 매우 중요한 이유입니다. 그것은 명확성을 확립합니다! 문제가 그냥 사라집니다! –