首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Java 10实现JPype

用Java 10实现JPype
EN

Stack Overflow用户
提问于 2018-07-24 18:51:00
回答 1查看 1.8K关注 0票数 2

有没有人知道,如果JPype与Java10JRE一起工作?

我已经用Java 8测试了JPype,没有任何问题,但是我无法将它与Java 10结合使用。

我的测试设置:

  • Windows 10 64位
  • Python 3.5.2 (Anaconda 4.2.0) 64位
  • Spyder 3.3.0
  • JPype 0.6.3 (通过pip install)

我在Spyder (包含在Anaconda包中)中执行Python测试脚本。

使用Java 8 (jre1.8.0_181)测试成功。

JPype启动时没有任何问题。

使用Java 10 (jre-10.0.2)进行的测试失败,出现以下错误:

代码语言:javascript
复制
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:

代码语言:javascript
复制
import jpype

java_path = "C:\\Program Files\\Java\\jre-10.0.2\\bin\\server\\jvm.dll"
jpype.startJVM(java_path, '-ea')

编辑:添加整个测试脚本

代码语言:javascript
复制
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

提前谢谢你,

马库斯

EN

回答 1

Stack Overflow用户

发布于 2019-01-30 06:22:58

我使用的是JDK 10.0.2和jpype 0.6.3。正如在jpype文档中提到的,安装在JAVA_HOME系统变量中提到的路径上查找JVM。

代码语言:javascript
复制
>>> from jpype import *
>>> getDefaultJVMPath()
'C:\\Program Files\\Java\\jdk-10.0.2\\bin\\server\\jvm.dll'

我的JAVA_HOME指向'C:\Program \Java\JDK-10.0.2‘,这就是为什么您以这种方式启动推荐使用-jpype的原因-

代码语言:javascript
复制
startJVM(getDefaultJVMPath(), "-ea")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51505655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档