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

Tried: Reinstalling jvm

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

Edit: Tried code below, still stuck:

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

asked Aug 17, 2015 at 8:17
15
  • 1
    Loading the JVM from a DLL is very hard even from C. I suggest you load the JVM using java from the command line or use Jython which runs in the JVM already. Commented Aug 17, 2015 at 8:20
  • @PeterLawrey Thanks for comment! I am unaware of Jython. Should I just install it and run my python script again? Or there is more to it? Commented Aug 17, 2015 at 8:40
  • Jython runs Python scripts inside the JVM. I assume there is more to it but this is designed and supported to work with the JVM it is running in. Commented Aug 17, 2015 at 8:53
  • stackoverflow.com/questions/3652554/calling-java-from-python Commented Aug 17, 2015 at 9:48
  • 1
    @ρss Okay done, please check and help if possible. Thanks. Commented Aug 20, 2015 at 11:38

4 Answers 4

3
+25

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

answered Aug 22, 2015 at 10:25
Sign up to request clarification or add additional context in comments.

3 Comments

Thanks! I get this error unforunately. >>> ctypes.CDLL('C:\Program Files (x86)\Java\jre1.8.0_40\bin\client\jvm.dll') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Anaconda\lib\ctypes\__init__.py", line 365, in __init__ self._handle = _dlopen(self._name, mode) WindowsError: [Error 126] The specified module could not be found
How does one give permission to the dll to "can run"? We are searching the web but the keywords are so generic we are not finding good answers.
Depends on the operating system version. Some application extensions only require access (sometimes the right to access and/or user and/or user group and/or access class and/or service point etc.).
3

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.

answered Aug 25, 2015 at 12:28

Comments

2

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

answered Dec 21, 2018 at 0:21

Comments

1

If you are trying to access JVM on Windows operation system, make sure you have the right version of JVM (32-bit or 64-bit) installed. In my case python was 64-bit and once I installed Java 64-bit, it worked without needing to specify the path or any other extra requirements.

answered Sep 5, 2019 at 22:47

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.