Домашний каталог JAVA в Linux


есть ли какая-либо команда linux, которую я мог бы использовать, чтобы узнать ? Я пробовал распечатать переменные среды ("env"), но я не могу найти каталог.

10 53

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 и смотреть, как он пролетает мимо. Вы можете прокручивать и просматривать его.