7、【Python】Python jpype调用java类库

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

猜你喜欢

转载自blog.csdn.net/sinat_33924041/article/details/84502290