有人知道 JPype 是否适用于 Java 10 JRE?
我已经用 Java 8 测试了 JPype,没有任何问题,但我无法将它与 Java 10 结合使用。
我的测试设置:
- Windows 10 64 位
- Python 3.5.2 (Anaconda 4.2.0) 64 位
- 蜘蛛3.3.0
- JPype 0.6.3(通过
pip install
)
我在 Spyder 中执行我的 Python 测试脚本(包含在 Anaconda 包中)。
使用 Java 8 (jre1.8.0_181) 测试成功。
JPype JVM 启动没有任何问题。
使用 Java 10 (jre-10.0.2) 测试失败并出现以下错误:
RuntimeError: Unable to load DLL [C:\Program Files\Java\jre-10.0.2\bin\server\jvm.dll], error = Das angegebene Modul wurde nicht gefunden.
at native\common\include\jp_platform_win32.h:58
我确实有德语 Windows 版本,因此“Das angegebene Modul wurde nicht gefunden”部分可能被翻译为“找不到指定的模块”。
我使用这个 Python 代码在 JPype 中启动 JVM:
import jpype
java_path = "C:\\Program Files\\Java\\jre-10.0.2\\bin\\server\\jvm.dll"
jpype.startJVM(java_path, '-ea')
编辑:添加整个测试脚本
import jpype
import os
java_path = "C:\\Program Files\\Java\\jre-10.0.2\\bin\\server\\jvm.dll"
# java_path = "C:\\Program Files\\Java\\jre1.8.0_181\\bin\\server\\jvm.dll"
# print exists result to be sure the file exists
print(os.path.exists(java_path))
jpype.startJVM(java_path, '-ea')
print("it works")
如果我使用 Java 10 部分,它不起作用,但如果我使用 Java 8 部分(当前已评论),它确实有效。
第一个print
命令在这两种情况下都会打印True
。
提前谢谢你,
马库斯