2017-01-25 8 views
2

Я пытаюсь выполнить файл jar в Java с помощью ProcessBuilder. Теперь, всякий раз, когда подпроцесс, вызываемый ProcessBuilder, выдает любое исключение, ProcessBuilder не улавливает исключение, и выполнение продолжается непрерывно.Processbuilder в Java не выбрасывает исключение подпроцесса

Ниже мой код:

try { 
ProcessBuilder pb = new ProcessBuilder("java", "-jar", CommonConstants.jarFileLocation, 
       fileEntry.getAbsolutePath(), CommonConstants.commonFileLocation);  
     Process p = pb.start();   
    } 
catch (Exception e) {   
     e.printStackTrace();  
    } 

Блок улова предполагают, чтобы напечатать любое исключение, когда процесс суб бросает любой. Однако этого никогда не происходит. Я что-то не хватает?

ответ

2

Совершено его для печати в консоли ....

я использовал метод ProcessBuilder inheritIO который устанавливает источник и место назначения для суб стандартного процесса ввода/вывода, чтобы быть такими же, как для текущего процесса Java.

Таким образом, модифицированный код ...

try { 
ProcessBuilder pb = new ProcessBuilder("java", "-jar", CommonConstants.jarFileLocation, 
       fileEntry.getAbsolutePath(), CommonConstants.commonFileLocation).redirectError(Redirect.INHERIT);  
     Process p = pb.start();   
    } 
catch (Exception e) {   
     e.printStackTrace();  
    } 

Однако, это нужно, чтобы быть пойманным блоком улова. Нужна помощь!