При наличии резервных копий Вы могли бы дать ему выстрел и попробовать convertfs - это делает что-то подобное предложению от "вчера", но в небольших шагах и автоматизированный. (Но с другой стороны, если у Вас есть резервные копии - не это легче просто вернуть фс и восстановление?:)
В теории это должно работать. (Я на самом деле использовал его с успехом... однажды),
Я не совсем уверен, но если Вы устанавливаете нормальный 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 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 на правильное значение:
echo "export JAVA_HOME=/usr/java/default/" > /etc/profile.d/java_home.sh
Вы хотите установить 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 файлы.
Это странно, смысл наличия переменной окружения JAVE_HOME так, Вы не должны указывать путь к каждой программе, это может получить этот путь путем поиска этой переменной.
Так или иначе корректный способ найти переменную окружения для JAVA_HOME состоит в том, чтобы использовать эхо:
[root@host ~]# echo $JAVA_HOME
/usr/java/j2sdk1.4.2_09
Выполнение этой команды отобразит путь, какую версию Вы выполняете из командной строки.
Ниже всегда отлично работает:
[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
.Я рассмотрел проблему, если изменить версию 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
.
re: Centos7, обратитесь к файлу /etc/java/java.conf.
в нем указано, что JAVA_HOME находится в следующем каталоге: / usr / lib / jvm / java
я проверил, это правильная версия jdk, которую я загрузил через yum, и поэтому ...
в моем env не установлен JAVA_HOME по умолчанию, поэтому я установил его в .bash_profile
Я нашел диспетчер пакетов может размещаться в различных местах, поэтому использование 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