Каково значение JAVA_HOME для CentOS?

При наличии резервных копий Вы могли бы дать ему выстрел и попробовать convertfs - это делает что-то подобное предложению от "вчера", но в небольших шагах и автоматизированный. (Но с другой стороны, если у Вас есть резервные копии - не это легче просто вернуть фс и восстановление?:)

В теории это должно работать. (Я на самом деле использовал его с успехом... однажды),

37
задан 6 August 2009 в 15:44
8 ответов

На самом деле я нашел его,

это /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/. Я узнал то, чем это было путем выполнения update-alternatives --display java и это показало мне каталог /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

54
ответ дан 28 November 2019 в 19:48

Я не совсем уверен, но если Вы устанавливаете нормальный RPMS, значение JAVA_HOME может также быть установлено к этому:

/usr/java/default/

Править: Я просто проверил свою домашнюю систему. Я создал этот файл:

/etc/profile.d/java.sh

Это содержит:

export JAVA_HOME=/usr/java/default/

и я использую официальную версию от Sun: jdk-1.6.0_12-fcs

Править: Вот то, как я настроил Java на своей машине:

Java установки

Загрузите и установите Java JDK от Oracle

Сделайте это основным

Удостоверьтесь, что этот Java используется вместо версии OpenJDK с помощью следующих двух команд:

Сначала

alternatives --install /usr/bin/java java /usr/java/default/bin/java 999999 \
           --slave /usr/bin/keytool keytool /usr/java/default/bin/keytool \
           --slave /usr/bin/rmiregistry rmiregistry /usr/java/default/bin/rmiregistry

Второй

alternatives --install /usr/bin/javac javac /usr/java/default/bin/javac 999999 \
           --slave /usr/bin/jar jar /usr/java/default/bin/jar \
           --slave /usr/bin/rmic rmic /usr/java/default/bin/rmic

Набор JAVA_HOME

Удостоверьтесь, чтобы всем пользователям установили их переменную среды JAVA_HOME на правильное значение:

echo "export JAVA_HOME=/usr/java/default/" > /etc/profile.d/java_home.sh
20
ответ дан 28 November 2019 в 19:48

Вы хотите установить JAVA_HOME, чтобы быть корневым местоположением JDK или JRE, например:

export JAVA_HOME=/usr/java/jdk1.3

Если JDK (Комплект разработчика) установлен, ypu, вероятно, хотят, чтобы это указало на это, еще использовало путь JRE (среда выполнения Java). Затем Вы могли бы хотеть установить свою переменную среды $PATH для включения каталога bin также:

export PATH=$PATH:/usr/java/jdk1.3/bin

При использовании кота Вы, возможно, также должны были бы установить CATALINA_HOME для пользователя кота.

export CATALINA_HOME=/path/to/tomcat

Для установки этого для системы, Вы хотите отредактировать свой/etc/profile или добавить .sh файл в/etc/profile.d папке. Для конкретного пользователя можно поместить его в пользователей ~/.profile или ~/.bash_profile файлы.

2
ответ дан 28 November 2019 в 19:48
  • 1
    Интересно, существует ли серьезное основание установка doesn' t делают это для Вас, если выполнено как суперпользователь, я всегда нахожу это раздражающим... –  Kyle Brandt 6 August 2009 в 16:15

Это странно, смысл наличия переменной окружения JAVE_HOME так, Вы не должны указывать путь к каждой программе, это может получить этот путь путем поиска этой переменной.

Так или иначе корректный способ найти переменную окружения для JAVA_HOME состоит в том, чтобы использовать эхо:

[root@host ~]# echo $JAVA_HOME
/usr/java/j2sdk1.4.2_09

Выполнение этой команды отобразит путь, какую версию Вы выполняете из командной строки.

0
ответ дан 28 November 2019 в 19:48

Ниже всегда отлично работает:

[user@base ~]$ locate bin/java
/usr/bin/java
/usr/bin/javac
/usr/bin/javadoc
/usr/bin/javaws
/usr/java/jdk1.6.0_31/bin/java
/usr/java/jdk1.6.0_31/bin/javac
/usr/java/jdk1.6.0_31/bin/javadoc
/usr/java/jdk1.6.0_31/bin/javah
/usr/java/jdk1.6.0_31/bin/javap
/usr/java/jdk1.6.0_31/bin/javaws
/usr/java/jdk1.6.0_31/jre/bin/java
/usr/java/jdk1.6.0_31/jre/bin/java_vm
/usr/java/jdk1.6.0_31/jre/bin/javaws

Это значит, что я могу установить JAVA_HOME в качестве /usr/java/jdk1.6.0_31

.
2
ответ дан 28 November 2019 в 19:48

Я рассмотрел проблему, если изменить версию java, используемую с:

alternatives --config java

Тогда любая жестко закодированная JAVA_HOME изменится (по крайней мере, это произойдет на Centos 6.6, на которую я сейчас смотрю). То есть нет /usr/java.

Это не кажется лучшим способом (открытым к неудаче), но за 10 минут, которые я потратил на это, это кажется лучшим.

В /etc/bashrc я изменил настройку на JAVA_HOME следующим образом:

export JAVA_HOME=$(alternatives --display java | grep current | sed 's/link currently points to //' | sed 's|/bin/java||')

Вы должны сделать что-то похожее на MacOSX, но без всех grep и sed, чтобы разобрать результат. Конечно альтернативы предлагают такое же более простое решение.

В любом случае, надеюсь, я помог.


Обновление

Нет, это было бы JRE_HOME. JDK / SDK не настолько очевиден (я продолжу искать).

Похоже, что альтернатива связана только с JRE по умолчанию. Я приступаю к ответу @Niels или просто устанавливаю Java с помощью yum и устанавливаю JAVA_HOME на это (хитрость в том, где я нашел, где это было установлено!).

yum install java-1.8.0-openjdk-devel.x86_64
cd /usr/lib/jvm 

Я заметил, что java_1.8.0 является сим-ссылкой на /etc/alternatives/java_sdk_1.8.0 и поэтому установил мою $JAVA_HOME на /usr/lib/jvm/java_1.8.0. В /etc/bashrc.

.
1
ответ дан 28 November 2019 в 19:48

re: Centos7, обратитесь к файлу /etc/java/java.conf.

в нем указано, что JAVA_HOME находится в следующем каталоге: / usr / lib / jvm / java

я проверил, это правильная версия jdk, которую я загрузил через yum, и поэтому ...

в моем env не установлен JAVA_HOME по умолчанию, поэтому я установил его в .bash_profile

0
ответ дан 28 November 2019 в 19:48

Я нашел диспетчер пакетов может размещаться в различных местах, поэтому использование which (вам нужно будет явно установить это, если вы используете контейнер), следующее будет немного менее хрупким

javaCompiler=$(which javac)
javaBin=$(dirname $(readlink -f $javaCompiler))
javaHome=${javaBin%/*}
export JAVA_HOME=$javaHome

или для JRE

javaExec=$(which java)
javaBin=$(dirname $(readlink -f $javaExec))
javaHome=${javaBin%/*}
export JRE_HOME=$javaHome
0
ответ дан 28 November 2019 в 19:48

Теги

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