可能重複:
How do I get the bash command exit code from a Process run from within Java?java的bash命令的問題
嗨,我已經使用bash命令./nv0914 < nv0914.challenge
,其中nv0914是Unix的可執行文件和程序是一個簡單的解密另一個文件nv0914.challenge是用於解密的文本文件。現在,當我從bash運行它時,如果運行命令echo ${?}
,我得到的值是0,這很好。但是現在我必須實施一次攻擊,爲此我需要通過java程序打印退出值。我有這樣的代碼,就好像現在:
import java.io.*;
import java.util.*;
public class ExecBashCommand {
public static void main(String args[]) throws Exception {
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("./nv0914 < nv0914.challenge");
/* InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;*/
System.out.println("Exit Code: "+process.exitValue());
//System.out.printf("Output of running %s is:", Arrays.toString(args));
/* while ((line = br.readLine()) != null) {
System.out.println(line);
}*/
}
}
但這個程序是給我的錯誤:
Exception in thread "main" java.lang.IllegalThreadStateException: process hasn't exited
at java.lang.UNIXProcess.exitValue(UNIXProcess.java:172)
at ExecBashCommand.main(ExecBashCommand.java:16)
任何建議,如何讓出口值。謝謝
你應該在你以前的相同問題中看到彼得的答案。它包含答案。你也應該接受它。 – 2011-05-04 17:36:14