2012-06-19 6 views
2

Я пытаюсь объединить две простые программы, которые я сделал для одного .jar. Я упаковал оба .jars в новый и использовал метод 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 не работает. Я новичок в java и не знаю, почему это происходит. Как это исправить? Я хочу, чтобы оба файла были выполнены.

+0

Вы уверены, что если первый один не бросает исключение? Можете ли вы попробовать распечатать трассировку стека? –

+0

Вы получаете некоторые исключения? – JuanZe

ответ

6

Ваша проблема заключается в том, что ваш второй файл ТОЛЬКО выполняется, если первый выдает исключение. Вы ищете это:

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*/ 
    } 
    } 
} 

Или, если вы абсолютно необходимо обрабатывать исключения отдельно, это:

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 Ваше редактирование исходного кода меняет все! Я даже не видел имбраци ... –

+0

Вот почему форматирование кода на самом деле очень важно. Он устанавливает ясность! Проблемы просто отпадают! –

Смежные вопросы