Accediendo a JVM desde python

>>> 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 

Intentado: Reinstalar JVM

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

Edición: Código tratado abajo, todavía atascado:

from py4j.java_gateway import JavaGateway gateway = JavaGateway() Da el mismo error que antes.

Comprueba, por favor !

  1. Dé una ruta verdadera ( "C:\\Program Files\\Java\\jre7\\bin\client\\jvm.dll" )
  2. Verifique todos los 32 o 64 bits (mi oferta siempre usa 32bit Anaconda, JRE7, Python, etc.)
  3. Instalar pywin32 (por supuesto python2.7.9)
  4. Dar permiso a jvm.dll (puede ejecutar)
  5. Después de que todo está bien, intente: import ctypes ctypes.CDLL('C:\\Program Files\\Java\\jre7\\bin\\client\\jvm.dll')

*** Tal vez no pueda tirar el gancho de algunas versiones de Java que usé jre-7u55-windows-i586.exe

Espero útil! Atentamente !

Trabajos en vino (sin error): introduzca la descripción de la imagen aquí

Respondiendo porque no tengo suficiente representante para comentar; Intente usar cadenas sin procesar en lugar de las normales, permitiendo que “\ x” se escape. Tratar:

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

Porque las partes “\ …” de la cadena podrían muy bien ser escapes.

Las respuestas anteriores no son suficientes, también se necesita instalar el Paquete redistribuible de Microsoft Visual C ++ 2010 (x86) según la respuesta de Bjorns.

Después de instalar el C ++ redistribuible:

  1. Establezca la variable de entorno JAVA_HOME en (“C: \ Archivos de progtwig \ Java \ jre7”)
  2. Use las rutas como se mencionó anteriormente para iniciar jvm:

    path_to_jvm = “C: \ Archivos de progtwig \ Java \ jre7 \ bin \ client \ jvm.dll”

    jpype.startJVM (path_to_jvm)

    jpype.startJVM (jpype.getDefaultJVMPath ())