Accessing JVM from python

Check Please !

  1. Give a true path ("C:\\Program Files\\Java\\jre7\\bin\client\\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')

***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): enter image description here


Answering because I don't have enough rep for commenting; Try using raw strings instead of the normal ones allowing "\x" escapes. Try:

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

Because the "\..." parts of the string could very well be escapes.


The answers above are not sufficient, one also needs to install the Microsoft Visual C++ 2010 Redistributable Package (x86) as per Bjorns answer.

After installed the C++ redistributable:

  1. Set JAVA_HOME environment variable to ("C:\Program Files\Java\jre7")
  2. Use paths as mentioned above to start jvm:

    path_to_jvm = "C:\Program Files\Java\jre7\bin\client\jvm.dll"

    jpype.startJVM(path_to_jvm)

    jpype.startJVM(jpype.getDefaultJVMPath())