На 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::")
- Ищет javac Java-компилятор (вместо java), включенный в JDK (но не JRE).
- Не имеет трейлинга / (снятого sed s: / bin ... вместо s: bin ...)
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