从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()
它给出了与以前相同的错误。
请检查 !
- 给出一个真正的路径(
"C:\\Program Files\\Java\\jre7\\bin\client\\jvm.dll"
) - 检查所有32位或64位(我的报价总是使用32位Anaconda,JRE7,Python等)
- 安装pywin32(当然是python2.7.9)
- 授予
jvm.dll
权限(可以运行) - 一切正常后,尝试:
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')
因为字符串的“\ …”部分很可能是逃脱的。