国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

python3.x - java調用python,python代碼自動停止了,找不到原因

瀏覽:110日期:2022-06-27 15:38:35

問題描述

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();

調用python代碼,執行時間比較長,估計有好幾個小時,大概五六個小時。如果單獨直接在shell中執行Python命令,則不會出問題;但是,使用這種方式java調用python,就有問題:一段時間之后,python沒有輸出了。判斷python是否正在運行,我的方式是:不斷寫文件,每隔一段時間,寫文件到文件系統中。如果是直接shell中輸入python命令執行,那么是正常的。java調用python,三個多小時之后,就沒有產生文件了,但是使用htop查看,線程還在。運行環境是ubuntu

問題解答

回答1:

對于java和python的交互,我倒是可以給你一個思路,僅做參考。我之前做過一個項目,使用的是socket,手機端是java腳本,服務端是python,然后java向python服務端發送字符串進行交互。你可以試試。

回答2:

你可以去看看jython,可以在java中直接執行python代碼

回答3:

這段代碼有個問題:

Process process = Runtime.getRuntime().exec(args);int exitValue = process.waitFor(); // A... process.getInputStream() ... // B

應該是先處理BgetInputStream()再處理AwaitFor,因為Java跟它調用的程序是通過管道(pipe)通訊的,如果不及時讀取管道,被調用的程序在寫stdout時就有可能阻塞住。

所以正確的順序是:

Process process = Runtime.getRuntime().exec(args);... process.getInputStream() ... // B... process.getErrorStream() ... // Cint exitValue = process.waitFor(); // A

另外留下個問題:

如果被調用程序先寫stderr再寫stdout,不還是會阻塞嗎?Java到底應該先讀inputStream還是先讀errorStream呢?

標簽: Python 編程
主站蜘蛛池模板: 亚洲一级片在线播放 | 中文字幕一区二区三区免费视频 | 全免费a级毛片免费看不卡 全免费毛片在线播放 | 在线观看日本污污ww网站 | 成人网18免费看 | 久久777国产线看是看精品 | 日韩国产欧美精品综合二区 | 久久黄网站 | 中国三级毛片 | 国产精品国产三级国产在线观看 | 免费国产成人高清视频网站 | 99久久精品免费看国产一区二区三区 | 精品视自拍视频在线观看 | 欧美大片在线观看成人 | 久在线视频 | 盗摄偷拍a在线观看 | 免费一级欧美在线观看视频片 | 91精品乱码一区二区三区 | 国产欧美精品三区 | 成人午夜精品久久不卡 | 日韩欧美亚洲综合久久99e | 毛片免费看 | 欧美做爰野外在线视频观看 | 欧美kkk4444在线观看 | 碰碰碰人人澡人人爱摸 | 欧美三级不卡在线观看视频 | 欧美在线一二三区 | 亚洲国产精品综合欧美 | 99九九精品国产高清自在线 | 欧美精品一区二区在线观看 | 日本精品中文字幕有码 | 久久久久久色 | 国产三级欧美 | 国产在线观看网址你懂得 | 亚洲精品国产福利一区二区三区 | 国内精品久久久久影院不卡 | 亚洲第一se情网站 | 性色tv视频观看 | 黄色网址在线免费观看 | 色偷偷女男人的天堂亚洲网 | 国产精品无码久久av |