В Ubuntu можно одновременно использовать несколько JVM. По умолчанию выбирается update-alternatives
. Но это не устанавливает JAVA_HOME
переменная окружения из-за политика Debian.
Я пишу сценарий запуска (bash), который запускает Java-приложение. Этому java-приложению требуется JAVA_HOME
переменная окружения. Итак, как получить путь к JVM, который в настоящее время выбирается update-alternatives
?
Для JRE что-то вроде этого должно помочь:
JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
Решение danadam может быть легко принято для получения пути JDK (т.е. не JRE) по мере необходимости:
JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))
В .bashrc
мне пригодилось.
Итак, вы говорите, что эта команда для вас ничего не делает?
sudo update-alternatives --config java
Я установил Java с
sudo apt-get install openjdk-7-jre-headless
а затем найти место
ls -al /etc/alternatives/java
В качестве расширения данадамов ответ:
Прежде всего, установите вторую Java JRE в качестве третьей опции java с приоритетом «3»:
sudo alternatives --install /usr/lib/jvm/jre jre /opt/IBM/java/jre/bin/java 3
Затем вы можете перечислить их:
update-alternatives --list java
Вы можете установить альтернативу вручную, используя это:
sudo alternatives --config java /opt/IBM/java/jre/bin/java
Затем ваш скрипт может установить его на лету, например:
sudo alternatives --set java /opt/IBM/java/jre/bin/java
JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
Это лучше иллюстрирует, что делает команда 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)/../..)