Python jpype
一、安装
如果你安装使用的是python 3.3及以上的版本,这些版本都内置了pip包管理器,你可以使用pip简单快速的安装jpype:
pip install jpype1
二、调用java API
说明:在使用python jpype 调用java API前,需要提前安装配置java jdk,这里就不详细介绍了。
新建一个test.py文件,代码如下:
from jpype import *
startJVM(getDefaultJVMPath(), "-ea”)
java.lang.System.out.println("Hello World”)
shutdownJVM()
运行test.py文件:
Python test.py
执行结果:
Hello World
三、调用第三方类方法
1、编译
在com目录下,新建test.java文件,代码如下:
package com;
public class Test {
public String run(String str){
return str;
}
}
编译test.java文件:
javac test.java
使用javac命令可以将test.java文件编译生成test.class文件,将编译生成的test.class文件放入com目录下的libs目录下。
说明:网上很多教程介绍这里需要将test.java和test.class,统一打包为一个.jar文件,在进行python调用时需要指定.jar包的路径。但经过个人的实践测试发现这是个一个坑,当然也可能是我在某一步出现了某个我未能发现的问题。我的做法是:只需要将test.java文件编译生成test.class文件,在python调用时指定test.class文件的路径即可。具体过程如下:
2、python调用
在com目录下,新建test.py文件,代码如下:
jarpath = os.path.join(os.path.abspath('.'), 'libs/test.class')
jpype.startJVM(jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % jarpath)
Test = jpype.JClass('com.Test')
# 或者通过JPackage引用Test类
# com = jpype.JPackage('com')
# Test = com.Test
t = Test()
res = t.run("a")
print res
jpype.shutdownJVM()
打开终端,编译执行test.py文件,输入如下:
a