java - java:重定位错误:jdk180_301/jre/lib/amd64/libnio.so:符号 initInetAddressIDs,版本 SUNWprivate_1.1 未在文件 libnet.so 中定义
问题描述
任何见解,即使是遥远的,都值得赞赏。这对我来说是一个新的。
部署从 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 文件??)
解决方案
推荐阅读
- android - 为什么我们需要在反编译和重建后对android应用程序进行签名?
- python-3.x - 超集中的仪表板重复问题
- python - 使用自定义属性训练自动编码器潜在空间
- python - 检查字符串是否为 discord.py 中的数字
- java - 如何根据父容器的大小调整 JPanel 的大小
- python-3.x - joblib.load 报错 ModuleNotFoundError: No module named 'sklearn.preprocessing.label'
- qt - 如何获取 MainWindow 而不是 centralWidget?
- shopify - 如何在任何页面中创建和调用自定义块
- html - XAMPP 不加载 CSS 文件
- firebase - Flutter Firestore Stem Data 想要在 StaggeredGridView 中显示