菜鸟一个,因为需要在python中调用java,看了下jpype安装过程。
jpype安装过程:
我的系统是win10(64位)+python2.7(64位)+jdk1.8(64位)
最后能运行win10(64位)+python2.7(32位)+jdk1.5(32位)
具体过程如下:
先是下载了一个JPype1 0.6.2版本:https://pypi.python.org/pypi/JPype1
参考文档如下:http://jpype.readthedocs.io/en/latest/install.html#
在解压了JPype1的目录里打开命令行,输入
python setup.py install
再运行程序
from jpype import *
startJVM(getDefaultJVMPath(), "-ea")
java.lang.System.out.println("hello world")
shutdownJVM()
报错:ImportError: DLL load failed: %1不是有效的WIN32应用程序
看到参考文档里用的全是jdk1.6.0,所以找到jdk6u45(64位)下载:http://download.csdn.net/download/javahr/7288527
运行
from jpype import *
startJVM("C:\\Program Files\\Java\\jdk1.6.0_45\\jre\\bin\\server\\jvm.dll", "-ea")
java.lang.System.out.println("hello world")
shutdownJVM()
继续报错:ImportError: DLL load failed: %1不是有效的WIN32应用程序
除此之外,vs2015和mingw都试了一下,不知道是不是没配置对的问题,一直都是dll failed。
最后用了最古老的方式:32位的python2.7 和 32位的jdk1.5.0(1.6.0试了不行)
安装JPype-0.5.4.2.win32-py2.7.exe
运行成功!
附上代码和cmd结果:
#coding=utf-8
#!/usr/bin/python
from jpype import *
import os.path
jarpath = os.path.join(os.path.abspath('.'), 'build/jar')
startJVM(r"D:\Program Files (x86)\Java\jdk1.5.0_22\jre\bin\client\jvm.dll", "-ea")
java.lang.System.out.println("Hello World")
shutdownJVM()
主要想拿自己惨痛教训让大家可以少试一些方法。如果大家有更好的方法或是能顺利运行的都请不吝赐教。