В Windows JAVA_HOME должен указывать папку установки JDK (так что JAVA_HOME/bin содержит все исполняемые файлы и JAVA_HOME/libs содержит все библиотеки по умолчанию jar).
Если я загружаю пакет Sun JDK и устанавливаю его в Linux, это та же процедура.
Тем не менее, мне нужно использовать пакет OpenJDK по умолчанию Kubuntu. Проблема в том, что все исполняемые файлы помещаются в /usr/bin. Но банки помещаются в /usr/share/java. Поскольку они не находятся под одной и той же папкой JAVA_HOME, у меня возникают проблемы с Grails, и, возможно, будут проблемы с другими приложениями, которые ожидают стандартную структуру Java.
-
Если я использую:
JAVA_HOME=/usrВсе приложения и скрипты, которые хотят использовать любой исполняемый файл Java, могут использовать стандартную процедуру
call $JAVA_HOME/bin/executable. Однако, поскольку банки находятся в другом месте, они не всегда находятся (например: в граалях я получаюClassDefNotFoundдляnative2ascii). -
С другой стороны, если я использую:
JAVA_HOME=/usr/share/javaНи один из исполняемых файлов Java (
java,javacи т.д.) не может быть найден.
Итак, каков правильный способ обработки переменной JAVA_HOME в Linux на базе Debian?
Спасибо за вашу помощь, Луис