从python访问JVM

>>> import boilerpipe Traceback (most recent call last): File "", line 1, in  File "C:\Anaconda\lib\site-packages\boilerpipe\__init__.py", line 10, in  jpype.startJVM(jpype.getDefaultJVMPath(), "-Djava.class.path=%s" % os.pathsep.join(jars)) File "C:\Anaconda\lib\site-packages\jpype\_core.py", line 50, in startJVM _jpype.startup(jvm, tuple(args), True) RuntimeError: Unable to load DLL [C:\Program Files\Java\jre7\bin\client\jvm.dll], error = The specified module could not be found. at native\common\include\jp_platform_win32.h:58 

尝试:重新安装jvm

 >> import ctypes >> import os >> os.chdir(r"") >> ctypes.CDLL("jvm.dll") Still unable to fix 

编辑:尝试下面的代码,仍然卡住:

from py4j.java_gateway import JavaGateway gateway = JavaGateway()它给出了与以前相同的错误。

请检查 !

  1. 给出一个真正的路径( "C:\\Program Files\\Java\\jre7\\bin\client\\jvm.dll"
  2. 检查所有32位或64位(我的报价总是使用32位Anaconda,JRE7,Python等)
  3. 安装pywin32(当然是python2.7.9)
  4. 授予jvm.dll权限(可以运行)
  5. 一切正常后,尝试: import ctypes ctypes.CDLL('C:\\Program Files\\Java\\jre7\\bin\\client\\jvm.dll')

***也许不能抛出一些java版本的钩子我使用jre-7u55-windows-i586.exe

我希望有帮助! 最好的祝福 !

关于葡萄酒(没有错误): 在此处输入图像描述

回答是因为我没有足够的代表进行评论; 尝试使用原始字符串而不是正常字符串,允许“\ x”转义。 尝试:

 >>> ctypes.CDLL(r'C:\Program Files (x86)\Java\jre1.8.0_40\bin\client\jvm.dll') 

因为字符串的“\ …”部分很可能是逃脱的。

Interesting Posts