最近实习,需要使用Python编程,其中牵涉到一些算法的编写。由于不熟悉Python,又懒得从头学,而且要写的算法自己之前又用Java实现过,就想着能不能用Python调用Java。经过查找资料,方法如下:
Step 1——安装JPype扩展包
想要通过Python调用Java,需要借助JPype组件,安装方式如下:
# Python 2.7 pip install jpype1 # Python 3.* # pip3 install jpype
Step 2——Java文件打包为JAR
安装好后,需要将需要调用的Java文件打包为JAR格式用于调用,示例代码如下:
// testDemo.java public class testDemo { public String inputTest(String input) { return "Input content: " + input; } public int calculate(int a,int b) { return a + b; } }
打包JAR
# 编译Java程序
javac testDemo.java
# 打包成JAR
jar cvf testDemo.jar testDemo.class
Step 3——Python调用
在得到JAR包后,就能通过Python进行调用了,示例代码如下:
# -*- coding:utf-8 -*- from jpype import * import os # 启动Java环境 startJVM("/usr/local/jdk1.8.0_211/jre/lib/amd64/server/libjvm.so", "-ea", "-Djava.class.path=%s" % (os.getcwd() + "/Test.jar")) # 加载自定义的Java Class JClass = JClass("testDemo") jc = JClass() # 获取Java标准库打印函数 jprint = java.lang.System.out.println # 调用函数,并输出返回值 jprint(jc.input("aloha")) jprint(jc.calculate(1, 2)) # 关闭Java环境 shutdownJVM()
2019.06.06 22:47——Weo