当我尝试从python3访问JVM时,jpype.getDefaultJVMPath()失败

kb5ga3dv  于 2022-11-07  发布在  Python
关注(0)|答案(3)|浏览(419)

我目前在windows10上使用的是Python3、java8、jpype 0.6.3版本。jpype.getDefaultJVMPath()失败,并显示错误:

raise JVMNotFoundException("No JVM shared library file ({0}) "
jpype._jvmfinder.JVMNotFoundException: No JVM shared library file (jvm.dll) found. Try setting up the JAVA_HOME environment variable properly.

我的JAVA_HOME指向C:\Program Files (x86)\Java\jdk1.8.0_241
如果我尝试通过传递jvm.dll path("C:\Program Files (x86)\Java\jdk1.8.0_241\jre\bin\client\jvm.dll)来直接启动JVM,python程序会崩溃。我已经为.dll文件授予了可执行权限
有人能帮我解决上述系统规格的问题吗

vpfxa7rd

vpfxa7rd1#

可能是JVM架构(32位)与Python(64位)不匹配。这将导致您所描述的症状。

b0zn9rqh

b0zn9rqh2#

原来我使用的共享代码需要一个特定版本的驱动程序。我仍然不明白这一切足以解释为什么,但与旧版本的驱动程序(从一个同事)一切工作!

tyu7yeag

tyu7yeag3#

from jpype import *
startJVM("/home/user_name/Downloads/ideaIC-2022.2.3/idea-IC- 222.4345.14/jbr/lib/server/libjvm.so", "-ea")

java.lang.System.out.println("hello world")
shutdownJVM()

这对我手动设置路径有效

startJVM("/home/user_name/Downloads/ideaIC-2022.2.3/idea-IC- 222.4345.14/jbr/lib/server/libjvm.so", "-ea")

如果此路径对你来说不正确搜索此文件libjvm.so在Linux上的分区计算机内然后复制文件路径

相关问题