JPype 是 Python调用 Java 代码的模块,需要Java SE Runtime Environment (JRE)的支持。
个人安装环境: Windows 7 64bit + Python 2.7 32bit + JRE 32bit
下载安装
下载 JPype-0.5.4.2.win32-py2.7.exe ,
https://sourceforge.net/projects/jpype/files/JPype/0.5.4/
双击按默认安装,即可。
测试代码
import jpype
jvmPath = jpype.getDefaultJVMPath()
jpype.startJVM(jvmPath)
jpype.java.lang.System.out.println("hello world!")
jpype.shutdownJVM()
问题与解决方法
问题:jpype.getDefaultJVMPath() returns None
原因:64bit java 与 32bit python 混用
解决方法:
下载 32bit JRE
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html,
选择下载
Windows x86 59.43 MB jre-8u111-windows-i586.tar.gz
下载后,解压到某一目录下,以 E: 目录为例,在测试代码中,
不使用jpype.getDefaultJVMPath() 函数获取jvm路径,而采用自定义jvm目录,如下所示
import jpype
# jvmPath = jpype.getDefaultJVMPath()
jvmPath = ur'E:\jre1.8.0_111\bin\client\jvm.dll'
jpype.startJVM(jvmPath)
jpype.java.lang.System.out.println("hello world!")
jpype.shutdownJVM()
参考资料
1、JPype: Bridging the worlds of Java and Python
http://jpype.sourceforge.net/
2、JPype的安装与使用
http://www.ibm.com/developerworks/cn/opensource/os-cn-jpype/
3、jpype.getDefaultJVMPath() returns None #118
https://github.com/originell/jpype/issues/118