2012-07-03 3 views
0

Я попытался использовать Runtime.getRuntime().exec(cmd), чтобы запустить приложение jad, чтобы декомпилировать файл .class. cmd = "../bin/jad Test.class" Но я не могу получить результат таким путем:Почему нет вывода при вызовах «Runtime.getRuntime(). Exec (cmd);» в Linux?

Process p = Runtime.getRuntime().exec(jadCmd2); 
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); 
String line = null; 
while ((line = in.readLine()) != null) { 
     System.out.println(line); 
} 

ничего не выход, может кто-нибудь сказать?

+0

должно быть неправильно вопрос, удалил мой ответ, чтобы избежать путаницы ... – posdef

ответ

3

Я подозреваю, что вы получаете сообщение об ошибке. Я предлагаю вам распечатать это также.

Если вы используете ProcessBuilder, вы можете комбинировать вывод и ошибку, чтобы вы могли читать только один поток.

От http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

ProcessBuilder pb = 
    new ProcessBuilder("myCommand", "myArg1", "myArg2"); 
pb.redirectErrorStream(true); 
Process p = pb.start(); 
+0

объединить? Можете ли вы поделиться примером кода? – JerryCai