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

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

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

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

問(wèn)題描述

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

問(wèn)題解答

回答1:

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

回答2:

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

回答3:

這段代碼有個(gè)問(wèn)題:

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

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

所以正確的順序是:

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

另外留下個(gè)問(wèn)題:

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

標(biāo)簽: Python 編程
主站蜘蛛池模板: 久久精品成人欧美大片免费 | 日韩欧美国产精品 | 免费v片视频在线观看视频 免费v片在线观看 | 久久久久久久久国产 | 欧美黄网站免费观看 | 夜鲁夜鲁夜鲁在线观看福利 | 亚洲综合一二三区 | 毛片精品 | 久久久久久久99久久久毒国产 | 可以免费观看欧美一级毛片 | 日本一极毛片兔费看 | 香港经典a毛片免费观看看 香港经典a毛片免费观看爽爽影院 | 免费观看的毛片手机视频 | 一区二区精品在线 | 手机在线成人精品视频网 | 黄色三级三级三级免费看 | 韩国欧洲一级毛片 | 国产欧美日韩精品一区二区三区 | 欧美日韩综合网在线观看 | 性感美女视频黄.免费网站 性高湖久久久久久久久 | 福利视频专区 | 中文字幕在线观看国产 | 久久久婷 | 女人抠逼视频 | 国产aaaaa一级毛片 | 暖暖免费高清日本一区二区三区 | 青青草国产免费一区二区 | 99热久久国产综合精品久久国产 | 亚洲国产一区二区三区四区五区 | 日韩午夜片| 国产精品久久久久久久午夜片 | 亚洲一级网站 | 国产福利一区二区在线精品 | 亚洲综合一区二区不卡 | 久草福利资源 | 亚洲男人的天堂在线观看 | 亚洲国产大片 | 午夜欧美成人香蕉剧场 | 国产精品三级手机在线观看 | 欧美区一区二区三 | 久久视频免费观看 |