使用Jpype在python中调用Java程序

在项目中遇到了这样的需求,在这里记录一下,首先要下载python的jpype库。最简单的就是用法就像下面一样:

jpype.startJVM(jpype.getDefaultJVMPath())
//调用java内置库函数方法
jpype.java.lang.System.out.println("hello world!") 
jpype.shutdownJVM()

然后可以尝试着调用自己写的java项目。第一步是在ide(eclipse)中将java工程导出为jar文件,放到一个指定路径中,这里放在”/home/liuchong/”下,文件为cilin.jar。

import jpype
import os
//指定jar包位置
jarpath = os.path.join(os.path.abspath('.'), '/home/liuchong/')
//开启JVM,且指定jar包位置
jpype.startJVM(jpype.getDefaultJVMPath(), "-Djava.ext.dirs=%s" % jarpath)
//引入java程序中的类.路径应该是项目中的package包路径
javaClass = jpype.JClass('cilin.CiLin')
//这一步就是具体执行类中的函数了
javaInstance = javaClass.calcWordsSimilarity(u"杯子", u"盆子")
print javaInstance
jpype.shutdownJVM()

这样其实也就满足了大部分的需求,在介绍一下变量类型的对应关系应该就差不多了。注意,java中的string要指定为unicode编码格式。

Java 类型==================转换成的 python 类型
byte, short and int=======int
long======================long
float and double==========float
boolean===================int of value 1 or 0
char======================unicode of length 1
String====================unicode
arrays====================JArray
other Java object=========JavaObject
Class=====================JavaClass
array Class===============JavaArrayClass

你可能感兴趣的:(leetcode刷题)