Я столкнулся с проблемой при настройке собственного пути к библиотеке для процесса Java (скажем, com.example.Main
), запускаемого с помощью простого сценария bash на 64-разрядной машине CentOS 5.
Соответствующий код скрипта выглядит следующим образом:
#!/bin/bash
export JAVA_HOME=/usr/local/java
export EXTRA_LD_LIBRARY_PATH=/opt/extra/lib64:/opt/extra/java/libs
${JAVA_HOME}/bin/java -Djava.library.path=${EXTRA_LD_LIBRARY_PATH}:${LD_LIBRARY_PATH} com.example.Main
В EXTRA_LD_LIBRARY_PATH
я поместил некоторые 64-битные собственные библиотеки, которые нужны классу Main
.
Однако класс Main
приводит к возникновению ошибки InternalError Java, несмотря на то, что файлы библиотеки находятся в /opt/extra/lib64
. Однако если я скопирую те же самые библиотечные файлы в /usr/lib64
, ошибка исчезнет, и код будет работать, как и ожидалось. (Кстати, env показывает, что LD_LIBRARY_PATH
не задано, поэтому / usr / lib64, очевидно, используется некоторыми настройками по умолчанию.)
Это нормальное поведение?
Спасибо!