Доступ к JVM из python
>>> import boilerpipe
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Anaconda\lib\site-packages\boilerpipe\__init__.py", line 10, in <module>
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"<path to Java bin client folder>")
>> 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"
)
- Проверьте все 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
Надеюсь, полезно! С наилучшими пожеланиями!
Работает над вином (без ошибок):
![введите описание изображения здесь]()
Ответ 2
Ответ, потому что у меня недостаточно комментариев для комментариев; Попробуйте использовать необработанные строки вместо обычных, позволяя "\ x" экранировать. Попробуйте:
>>> ctypes.CDLL(r'C:\Program Files (x86)\Java\jre1.8.0_40\bin\client\jvm.dll')
Потому что части "\..." строки могут быть очень удачными.
Ответ 3
Приведенных выше ответов недостаточно, также необходимо установить распространяемый пакет Microsoft Visual C++ 2010 (x86) в соответствии с ответом Бьорна.
После установки распространяемого C++:
- Установите для переменной среды JAVA_HOME значение ("C:\Program Files\Java\jre7")
-
Используйте пути, как указано выше, для запуска jvm:
path_to_jvm = "C:\Program Files\Java\jre7\bin\client\jvm.dll"
jpype.startJVM(path_to_jvm)
jpype.startJVM(jpype.getDefaultJVMPath())
Ответ 4
Если вы пытаетесь получить доступ к JVM в операционной системе Windows, убедитесь, что у вас установлена правильная версия JVM (32-разрядная или 64-разрядная). В моем случае python был 64-битным, и как только я установил Java 64-битный, он работал без необходимости указывать путь или какие-либо другие дополнительные требования.