0

任何见解,即使是遥远的,都值得赞赏。这对我来说是一个新的。

部署从 JDK6 升级到 JDK8 的现有 Batch Java 进程(继承系统)。我在 PROD Linux 服务器上运行 jar 文件时遇到此消息。Java(TM) SE 运行时环境 (build 1.8.0_301-b25)

产品:SUSE Linux Enterprise Server 11 SP4。
测试:“Oracle Linux 7.9”

上下文:它在测试服务器中使用相同的确切类路径按预期工作。没有错误。

java: relocation error: /opt/oracle/products/jdks/jdk180_301/jre/lib/amd64/libnio.so: symbol initInetAddressIDs, version SUNWprivate_1.1 not defined in file libnet.so with link time reference

运行使用 Java 8 构建的 JAR(301,然后是 251,然后是 60……以防万一) Run Command + classpath 是(为便于阅读而格式化):

java -Xms256M -Xmx3500M
-cp 
/batch/live/local-classes/PRODUCTION.jar
:/batch/live/local-classes/PRODUCTION_MQDownload.jar 
:/batch/live/local-classes/OJDBC8-Full/*
-> MQ Circa 2013 <- 
:/batch/live/local-classes/MQlib/classes12.jar
:/batch/live/local-classes/MQlib/com.ibm.mq.jar
:/batch/live/local-classes/MQlib/com.ibm.mq.jmqi.jar
:/batch/live/local-classes/MQlib/connector.jar
:/batch/live/local-classes/MQlib/com.ibm.mqjms.jar
:/batch/live/local-classes/MQlib/jms.jar
:/batch/live/local-classes/MQlib/jta.jar
-> Apache Commons is most recent <-
:/batch/live/local-classes/commons-codec-1.15.jar
:/batch/live/local-classes/commons-crypto-1.1.0.jar 
  • 将所有 Classpath JARS 与测试进行了比较。
  • 更新了 .profile(SUSE 没有 .bash_profile)LD_LIBRARY_PATH= 和 LD_LIBRARY_PATH64= 看起来与 TEST 中的相同。
  • 使用早期的 Java SE 构建号创建不同的构建
  • 重新排列类路径,将 Java8 编译的 JAR 作为另一个测试首先列出

这似乎是 Java 版本不匹配问题(调用已安装的 Oracle JRE 中不可用的符号的依赖 JAR 文件??)

4

0 回答 0