问题陈述
在python程序里调用java一个类的函数。之前偷懒用了py4j,没看怎么打包引用,发现那样运行起来很慢。文章参见 这里 。所以现在试试先打包再直接引用。所用的包是jpype。
安装
我装的版本是jpype1-0.7.5。
pip install jpype1
java准备
代码正常写。需要在外部引用的,写成public static。
package test;
public class BMS {
public static int myFunc(){...}
}
然后打成jar包。eclipse用户可以在文件名上export,选JAR file
然后拷贝到与python程序同层路径下。
python准备
这里贴引用java函数的代码。
from jpype import *
jvmPath = getDefaultJVMPath()
path = 'bms.jar' // 这是我的jar包名称
startJVM(jvmPath, "-ea", "-Djava.class.path=%s" % (path), convertStrings=False)
jc = JClass("test.BMS") // 这是类的地址,是在test包下的类BMS
num = jc.myFunc() // 调用java函数
shutdownJVM() // 关闭