java调用python文件生成图片

655 阅读2分钟

python文件生成图片

首先要保证python脚本可以通过给定的参数,然后生成对应的图片.
然后使用java进行调用脚本给定对应图片地址生成图片.

前提工作

如果是本地的话就要注意本地是否有pyhton环境,如果没有的话就需要安装一下,这个方式百度一下都能找到,python下载地址:Welcome to Python.org.
然后就是看对应python脚本中是否有依赖某些包,如果没有的话就需要在本地安装一下.
我这里python脚本使用到的依赖包有:matplotlibpandas

安装方法如下:

pip install pandas
pip install matplotlib

但是默认的下载可能会 比较 慢,很久都下不下来,如果下载很慢的话可以试一下下面这个安装方式:

如果下载比较慢的话修改下载源
pip --default-timeout=100 install pandas -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

pip --default-timeout=100 install matplotlib -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

安装方式win和 linux一样,但是前提 是 需要 也有python环境 和 Pip即可.

使用java调用python脚本

java提供了 Runtime.getRuntime().exec(); 方法 调用python脚本,然后使用对应的方法 进行返回 代码,具体的代码实现是这样的:

p = Runtime.getRuntime().exec(cmdPythonStr);
int waitSecond = 0;
while (!p.waitFor(pyWaitIntervalSencond, TimeUnit.SECONDS)){
    waitSecond = waitSecond + pyWaitIntervalSencond;
    if(waitSecond>=pyTimeoutSencond){
        break;
    }
}
p.destroy();
jsonFile = new File(jsonfilepath);
jsonFile.delete();
File imageFile = new File(pythonPathImg,imageName);
boolean is = imageFile.isFile();
if(is){
    imageFilePath = pythonPathImg + "/" + imageName;
}

其中 cmdPythonStr 是组装好的python调用脚本,直接可以在控制台就可以生成的命令. imageFilePath 是具体生成的图片地址.\

注意

如果没有pyhton环境或者对应的pyhton包,那么如果调用正确但是缺少python的包或者环境,java是不会报错的,只会出现python调用成功后拿到的 值是空的,也不会有任何报错的 信息,这个情况我在linux的 测试 环境上遇到一直找不到问题