久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:132日期: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();

調(diào)用python代碼,執(zhí)行時間比較長,估計(jì)有好幾個小時,大概五六個小時。如果單獨(dú)直接在shell中執(zhí)行Python命令,則不會出問題;但是,使用這種方式j(luò)ava調(diào)用python,就有問題:一段時間之后,python沒有輸出了。判斷python是否正在運(yùn)行,我的方式是:不斷寫文件,每隔一段時間,寫文件到文件系統(tǒng)中。如果是直接shell中輸入python命令執(zhí)行,那么是正常的。java調(diào)用python,三個多小時之后,就沒有產(chǎn)生文件了,但是使用htop查看,線程還在。運(yùn)行環(huán)境是ubuntu

問題解答

回答1:

對于java和python的交互,我倒是可以給你一個思路,僅做參考。我之前做過一個項(xiàng)目,使用的是socket,手機(jī)端是java腳本,服務(wù)端是python,然后java向python服務(wù)端發(fā)送字符串進(jìn)行交互。你可以試試。

回答2:

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

回答3:

這段代碼有個問題:

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

應(yīng)該是先處理BgetInputStream()再處理AwaitFor,因?yàn)镴ava跟它調(diào)用的程序是通過管道(pipe)通訊的,如果不及時讀取管道,被調(diào)用的程序在寫stdout時就有可能阻塞住。

所以正確的順序是:

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

另外留下個問題:

如果被調(diào)用程序先寫stderr再寫stdout,不還是會阻塞嗎?Java到底應(yīng)該先讀inputStream還是先讀errorStream呢?

標(biāo)簽: Python 編程
主站蜘蛛池模板: 99色综合 | 久操草| 亚洲精选国产 | 狠狠操av| 国产亚洲精品久久久456 | 色婷婷久久 | 欧美黄色a视频 | 欧美日韩中文字幕 | www.久久| 丝袜 亚洲 另类 欧美 综合 | 午夜小视频在线观看 | 天天干夜夜爽 | 亚洲www啪成人一区二区 | 日韩中文一区二区三区 | 狠狠操电影| av中文字幕在线播放 | 国产一级二级毛片 | 久久久久黄 | 亚洲福利在线播放 | 日韩一区二区三区在线视频 | 99草草 | 四虎动漫 | 久久久精品区 | 国产午夜精品一区二区三区免费 | 色播开心网| 天天澡天天狠天天天做 | 国产精品久久久久久亚洲调教 | 成年人在线视频播放 | 国产精品 日韩 | 亚洲免费观看视频 | 欧美精品一区在线观看 | 国产欧美综合一区二区三区 | 成人精品视频在线观看 | 日韩一级免费在线观看 | 成人av免费| 国产精品国产精品国产专区不卡 | www.久久久久久久 | 五月婷婷色 | 91在线精品一区二区 | 亚洲瑟瑟 | 精品xxxx户外露出视频 |