问题:本人在做大学服务外包竞赛的项目,遇到“通过java调用python代码”的问题。通过资料查找,发现网上多是推荐用Process pr=Runtime.getRuntime().exec(args1);这一方法(具体内容请自行搜索)。https://www.cnblogs.com/nuccch/p/8435693.html(还是帮你们搜吧)
一开始,本人也选择了该方法,因为确实简单,还能使用第三方库。但是本人调用中遇到了问题。java上找到了指定文件,也顺利传入参数,但由于python和java不在同一工程中,python内的一些文件指定不是用的绝对路径,导致python运行失败。而这问题在服务器内用cmd运行python时不会出现,即cmd能成功执行python。
重点来了,这一FileNotfound的错误在用Runtime方法直接执行python文件时不会出现错误提示,且在python终断后,继续执行Java代码。这给我一种Runtime执行有时限的错觉(就让我一段时间内不知道是python里指定文件没用绝对路径的问题),网上也有网友这样质疑:“java Runtime调用python无法执行完?”