Python linux 报错 jpype._jexception.RuntimeExceptionPyRaisable: java.lang.RuntimeException: Class not found

phoenix · 2020年04月26日 · 1495 次阅读


目的:记录这个坑
问题:如图 jpype._jexception.RuntimeExceptionPyRaisable: java.lang.RuntimeException: Class XXX not found
描述:此代码在 windows 环境正常运行,但是移植到 linux 平台就报错
问题解决过程:
1)windows 运行正常,基本可以排除代码问题,确定是环境问题
2)检查 java、python、linux、jpype 的版本,及位数——OK
3)确定 jvmpath、jarpath 无误
4)采纳网上结论,设置 java 环境变量时,直接 export 导入,并且设置 CLASSPATH——无效(我本来就是这么设置的~~)
JAVA_HOME=/usr/java/jdk1.8.0_251
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
5)根据这位兄弟的结论,开始怀疑 “linux 中 jpype 加载多个 JAR 包时存在 BUG”——解决问题
结论:linux 中 jpype 加载多个 JAR 包时存在 BUG,可以合并 JAR 包
mkdir tmp
cd tmp
jar -xf ../jar1.jar
jar -xf ../jar2.jar
cd ..
jar -cvf test.jar -C tmp .

最后:附上原大佬链接
https://www.v2ex.com/t/215920

共收到 0 条回复 时间 点赞
phoenix 关闭了讨论 09月26日 09:56
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册