String[] args = {"python3", pythonFile};
Process process = Runtime.getRuntime().exec(args);
int exitValue = process.waitFor();
BufferedInputStream in = new BufferedInputStream(process.getInputStream());
BufferedInputStream err = new BufferedInputStream(process.getErrorStream());
BufferedReader inBr = new BufferedReader(new InputStreamReader(in));
BufferedReader errBr = new BufferedReader(new InputStreamReader(err));
String lineStr;
while ((lineStr = inBr.readLine()) != null) {
logger.info(lineStr);
}
while ((lineStr = errBr.readLine()) != null) {
logger.error(lineStr);
}
inBr.close();
errBr.close();
in.close();
err.close();
調(diào)用python代碼,執(zhí)行時間比較長,估計有好幾個小時,大概五六個小時。如果單獨直接在shell中執(zhí)行Python命令,則不會出問題;但是,使用這種方式j(luò)ava調(diào)用python,就有問題:一段時間之后,python沒有輸出了。判斷python是否正在運行,我的方式是:不斷寫文件,每隔一段時間,寫文件到文件系統(tǒng)中。如果是直接shell中輸入python命令執(zhí)行,那么是正常的。java調(diào)用python,三個多小時之后,就沒有產(chǎn)生文件了,但是使用htop查看,線程還在。運行環(huán)境是ubuntu
java調(diào)用python,python代碼自動停止了,找不到原因
慕田峪4524236
2019-03-01 10:53:46