Jpype实现python调用java程序
程序员文章站
2022-03-19 16:01:35
有时需要在 Python 项目中利用既有的 Java 代码,已达到节省时间和开发成本的目的。JPype 是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足。1、环境配置 Linux操作系统、jdk1.6、python3.7.5、Jpype0.6; jdk配置上一篇文章已经讲过,python3安装也比较简单,这里着重强调Jpype的版本问题。由于Jpype相当于java和pytho......
有时需要在 Python 项目中利用既有的 Java 代码,已达到节省时间和开发成本的目的。JPype 是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足。
1、环境配置
Linux操作系统、jdk1.6、python3.7.5、Jpype0.6;
jdk配置上一篇文章已经讲过,python3安装也比较简单,这里着重强调Jpype的版本问题。由于Jpype相当于java和python之间的桥梁,因此需要同时兼容两个版本的环境配置,Jpype0.6以下版本支持jdk1.6但是不支持python3版本,Jpype安装比较简单,官网根据Release history找到对应版本,直接复制给定的命令运行即可(注意python3+需要pip3命令,而不是pip)。
2、编写java程序并打包成jar包
编写程序Hello.java:
public class Hello {
public void myPrint(){
System.out.println("Hello,I am java");
}
}
命令行打包:
javac Hello.java #编译生成.class文件
jar -cvfe hw.jar Hello Hello.class #打包java的方式很多,这里直接用-e参数指定main函数入口,生成hw.jar包,具体可通过jar --help查看使用方法
java -jar hw.jar #运行
这时目录下会有三个文件:Hello.java Hello.class hw.jar
3、编写python程序
import jpype
jvmPath = jpype.getDefaultJVMPath() #启动java虚拟机
jpype.startJVM(jvmPath, "-ea", "-Djava.class.path=./hw.jar") #jar包路径
JClass = jpype.JClass('Hello') #获取类,输入参数为类的路径
instance = JClass() #实例化为对象
instance.myPrint() #调用java函数,打印结果
jpype.shutdownJVM() #关闭虚拟机
执行成功:
[***@localhost pypro]$ python3 test.py
Hello,I am java
JVM activity report :
classes loaded : 20
JVM has been shutdown
本文地址:https://blog.csdn.net/Amaris_1997/article/details/111941970
上一篇: 解析PNG图象格式库存在远程拒绝服务漏洞