首页 > 解决方案 > JPype1=0.7.0: TypeError: Unable to convert str ro java type class java.lang.String

问题描述

当使用 JPype1 将 python str 转换为 java.lang.String 时,我在某些 windows 机器上遇到错误,而在其他 windows 机器上没有。

TypeError中的文件“lib\site-packages\jpype_jobject.py”第 86 行__new__
:无法将 str 转换为 java 类型类 java.lang.String

我使用 PyInstaller 3.5 将代码打包成“exe”,然后在具有相同 JDK 的几台 Windows 机器上运行 exe,但得到不同的结果。

编译环境:windows,python 3.6.5,JPype1 0.7.0,PyInstaller 3.5,
运行环境:windows,JDK 1.8

import jpype
from jpype import JClass

jpype.startJVM(jpype.getDefaultJVMPath())
mystr = "i'm a string"
jstr = jpype.JObject(mystr, JClass("java.lang.String"))

我试图阅读源代码“ https://github.com/jpype-project/jpype.git ”但没有得到任何东西。

任何人都可以在这里引导我朝着正确的方向前进吗?

标签: javapythonpyinstallerjpype

解决方案


最后我发现另一个错误日志说JVM没有成功启动。因为机器上有两个版本的jdk。虽然 "java -version" 显示 1.8,但 %JAVA_HOME% 仍然是 1.7。


推荐阅读