Как определить JAVA_HOME на Debian /Ubuntu?

В Ubuntu возможно одновременное использование нескольких JVM. По умолчанию выбрано update-alternatives. Но это не устанавливает переменную среды JAVA_HOME, из-за debian .

Я пишу сценарий запуска (bash), который запускает Java-приложение. Это java-приложение нуждается в переменной окружения JAVA_HOME. Итак, как получить путь к JVM, который в настоящее время выбран update-alternatives?

87 голосов | спросил Witek 20 Maypm10 2010, 19:09:42

7 ответов


131

Для JRE что-то вроде этого должно сделать трюк:

JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
ответил danadam 20 Maypm10 2010, 21:55:19
41

Решение danadam легко может быть принято для получения пути JDK (то есть не JRE) по мере необходимости:

JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
  • Ищет javac Java-компилятор (вместо java), включенный в JDK (но не JRE).
  • Не имеет привязки /(отключен sed s: /bin ... вместо s: bin ...)
ответил rsaddey 2 J0000006Europe/Moscow 2011, 12:44:01
12

export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))

В .bashrc мне было удобно.

ответил David 25 PMpWed, 25 Apr 2012 13:34:23 +040034Wednesday 2012, 13:34:23
9

Итак, вы говорите, что эта команда ничего не делает для вас?

sudo update-alternatives --config java 
ответил djangofan 20 Maypm10 2010, 19:14:55
3

Я установил java с помощью

sudo apt-get install openjdk-7-jre-headless

, а затем найти местоположение

ls -al /etc/alternatives/java
ответил prule 5 MaramTue, 05 Mar 2013 07:40:51 +04002013-03-05T07:40:51+04:0007 2013, 07:40:51
2

Как продолжение ответа на danadams:

Прежде всего, установите вторую 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 и т. Д., Каждый из них выполняется отдельно.

ответил djangofan 2 MarpmFri, 02 Mar 2012 20:40:22 +04002012-03-02T20:40:22+04:0008 2012, 20:40:22
1

Недавно я создал учебное пособие на форуме Ubuntu о том, как установить последнюю версию JRE /JDK с веб-сайта Java. В нем также описывается, как включить его в масштабе всей системы, добавив местоположение JRE /JDK в переменную PATH. Если вам нравится, вы также можете добавить JAVA_HOME в сценарий, упомянутый в конце темы.

Проверьте это:

ответил EarthMind 20 Maypm10 2010, 22:47:28

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132