从 python 访问 JVM

2022-01-16 00:00:00 python jvm java boilerpipe
>>> import boilerpipe
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:Anacondalibsite-packagesoilerpipe\__init__.py", line 10, in <module>
    jpype.startJVM(jpype.getDefaultJVMPath(), "-Djava.class.path=%s" % os.pathsep.join(jars))
  File "C:Anacondalibsite-packagesjpype\_core.py", line 50, in startJVM
    _jpype.startup(jvm, tuple(args), True)
RuntimeError: Unable to load DLL [C:Program FilesJavajre7inclientjvm.dll], error = The specified module could not be found.
 at nativecommonincludejp_platform_win32.h:58

试过了:重新安装jvm

Tried: Reinstalling jvm

>> import ctypes
>> import os
>> os.chdir(r"<path to Java bin client folder>")
>> ctypes.CDLL("jvm.dll")
Still unable to fix

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

Tried code below, still stuck:

从 py4j.java_gateway 导入 JavaGateway网关 = JavaGateway()它给出了与以前相同的错误.

from py4j.java_gateway import JavaGateway gateway = JavaGateway() It gives the same error as before.

推荐答案

请检查!

  1. 给出真实路径("C:\Program Files\Java\jre7\binclient\jvm.dll")
  2. 检查所有 32 位或 64 位(我的报价始终使用 32 位 Anaconda、JRE7、Python 等)
  3. 安装pywin32(当然是python2.7.9)
  4. 授予jvm.dll权限(可以运行)
  5. 一切都ok了,试试:import ctypes ctypes.CDLL('C:\Program Files\Java\jre7\bin\client\jvm.dll')
  1. Give a true path ("C:\Program Files\Java\jre7\binclient\jvm.dll")
  2. Check all 32 or 64 bit (my offer always use 32bit Anaconda,JRE7,Python etc.)
  3. Install pywin32 (of course python2.7.9)
  4. Give permission to jvm.dll(can run)
  5. After all is ok, try: import ctypes ctypes.CDLL('C:\Program Files\Java\jre7\bin\client\jvm.dll')

***可能有些java版本的hook不能抛出我用 jre-7u55-windows-i586.exe

***Maybe can't throw the hook of some java versions i used jre-7u55-windows-i586.exe

希望对您有所帮助!最好的问候!

i hope helpful ! Best regards !

适用于葡萄酒(无错误):

Works on wine(no bug):

相关文章