#java #linux #suse #oraclelinux
Вопрос:
Любое понимание, даже отдаленное, приветствуется. Это что-то новое для меня.
Развертывание существующего пакетного процесса Java (унаследованная система), обновление с JDK6 до JDK8. Я столкнулся с этим сообщением, запустив файл jar на сервере PROD Linux. Среда выполнения Java(TM) SE (сборка 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
Запуск JAR, построенного на Java 8 (301, затем 251, затем 60…на всякий случай, если в этом проблема)
Выполнить команду путь к классу (отформатирован для удобства чтения):
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
- сравнил все БАНКИ пути к классу с тестом.
- Обновлен .профиль (в SUSE нет .bash_profile) LD_LIBRARY_PATH= и LD_LIBRARY_PATH64=, чтобы выглядеть так же, как в ТЕСТЕ.
- Созданы различные сборки с более ранними номерами сборок Java SE
- изменил путь к классу с помощью скомпилированных JAR-файлов Java8, перечисленных сначала как еще один тест
Похоже, это проблема несоответствия версии Java (зависимый файл JAR, вызывающий символ, недоступный в установленном Oracle JRE??)