Домашний каталог JAVA в Linux
есть ли какая-либо команда linux, которую я мог бы использовать, чтобы узнать ? Я пробовал распечатать переменные среды ("env"), но я не могу найти каталог.
10 ответов:
echo $JAVA_HOME
выведет значение, если оно установлено. Однако, если вы не установили его вручную в своих сценариях запуска, он, вероятно, не установлен.Если вы попытаетесь
which java
и он ничего не находит, Java может быть не установлен на вашем компьютере или, по крайней мере, не находится на вашем пути. В зависимости от того, какой дистрибутив Linux у вас есть и есть ли у вас корневой доступ, вы можете перейти к http://www.java.com чтобы загрузить нужную вам версию. Затем вы можете установить JAVA_HOME для указания этот каталог. Помните, что это просто соглашение и не должно использоваться для определения, установлена ли java или нет.
на Linux вы можете запустить
$(dirname $(dirname $(readlink -f $(which javac))))
на Mac вы можете запустить
$(dirname $(readlink $(which javac)))/java_home
Я не уверен в windows, но я представляю
where javac
будет Вам очень близко
Я знаю, что это поздно, но эта команда ищет каталог / usr/, чтобы найти java для вас
sudo find /usr/ -name *jdk
результаты
/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-1.6.0-openjdk
FYI, если вы находитесь на Mac, в настоящее время JAVA_HOME находится по адресу
/System/Library/Frameworks/JavaVM.framework/Home
просто еще одно решение, это кросс-платформа (использует
java
), и указывает вам на местоположение jre.java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home'
выводит все от
java
текущие настройки, и находит тот, который называетсяjava.home
.
чтобы показать значение переменной среды, которую вы используете:
echo $VARIABLE
Так что в вашем случае будет:
echo $JAVA_HOME
в случае, если вы не установили его, вы можете добавить в свой
.bashrc
file:экспорт переменной JAVA_HOME=$(и более ранних версий -Ф /usr/Бен/Ява | СЭД "s:bin/java::")
и она будет динамически меняться при обновлении пакетов.
если
$JAVA_HOME
определена в вашей среде...$ echo $JAVA_HOME $ # I am not lucky...
вы можете догадаться об этом из классов, которые загружаются.
$ java -showversion -verbose 2>&1 | head -1 [Opened /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64/jre/lib/rt.jar]
этот метод гарантирует, что вы найдете правильное
jdk
/jre
используется в случае, если есть несколько установок.или через
strace
:$ strace -e open java -showversion 2>&1 | grep -m1 /jre/ open("/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64/jre/bin/../lib/amd64/jli/tls/x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
на терминале, типа:
echo "$JAVA_HOME"
Если вы ничего не получаете, то ваша переменная окружения JAVA_HOME не была установлена. Вы можете попробовать использовать "locate java", чтобы попытаться узнать, где находится ваша установка Java.
вы установили свой JAVA_HOME
- оболочки Korn и bash: экспорт JAVA_HOME=jdk-install-dir
- оболочки Bourne:переменной JAVA_HOME=JDK для установки-реж;экспорт переменной JAVA_HOME
- C shell: setenv JAVA_HOME jdk-install-dir
вот улучшение, захватывая только каталог в stdout:
java -XshowSettings:properties -version 2>&1 \ | sed '/^[[:space:]]*java\.home/!d;s/^[[:space:]]*java\.home[[:space:]]*=[[:space:]]*//'
http://www.gnu.org/software/sed/manual/html_node/Print-bash-environment.html#Print-bash-environment
Если вы действительно хотите получить некоторую информацию о своем BASH, поместите этот скрипт в свой .bashrc и смотреть, как он пролетает мимо. Вы можете прокручивать и просматривать его.