В Ubuntu можно иметь несколько JVM одновременно. По умолчанию выбирается с помощью update-alternatives
. Но это не устанавливает JAVA_HOME
переменную окружения из-за политики debian .
Я пишу скрипт запуска (bash), который запускает Java-приложение. Это Java-приложение нуждается в JAVA_HOME
переменной окружения. Так, как получить путь JVM, который в настоящее время выбран update-alternatives
?
echo $(readlink -f /usr/bin/java | sed "s:bin/java::")
, на выходе было/usr/lib/jvm/java-7-oracle/jre/
и нет/usr/lib/jvm/java-7-oracle/
Решение danadam может быть легко адаптировано для извлечения пути JDK (т.е. не JRE) по мере необходимости:
источник
export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))
Это
.bashrc
было удобно для меня.источник
Итак, вы говорите, что эта команда ничего не делает для вас?
источник
Я установил Java с
а затем найти место
источник
Как продолжение данадамов ответьте:
Прежде всего, установите 2-ую Java JRE в качестве 3-й опции Java с приоритетом «3»:
Затем вы можете перечислить их:
Вы можете установить альтернативу вручную, используя это:
Затем ваш скрипт может установить его на лету, вот так:
Это лучше показывает, что делает команда sed. Хотя вам все еще нужно установить ссылки для javaw, javac и т. Д., А также для каждой из них по отдельности.
источник
Некоторое время назад я создал учебник на форуме Ubuntu о том, как установить последнюю версию JRE / JDK с веб-сайта Java. В нем также рассказывается, как включить его для всей системы, добавив расположение JRE / JDK в переменную PATH. Если хотите, вы также можете добавить JAVA_HOME в скрипт, упомянутый в конце темы.
Проверьте это: http://ubuntuforums.org/showthread.php?t=1437100
источник
Если java настроен с помощью
update-alternatives
переменной PATH или был добавлен в нее вручную, то нет"/usr/bin/java"
необходимости в жестком кодировании . Я использую это решение в моем .bashrc:export JAVA_HOME=$(readlink -m $(which java)/../..)
источник