Каталог JAVA_HOME в Linux
Есть ли какая-нибудь команда Linux, которую я мог бы использовать, чтобы узнать JAVA_HOME
каталог? Я попытался распечатать переменные окружения ("env"), но я не могу найти каталог.
11 ответов
echo $JAVA_HOME
напечатает значение, если оно установлено. Однако, если вы не установили его вручную в сценариях запуска, возможно, он не установлен.
Если вы попытаетесь which java
и он ничего не находит, Java может быть не установлена на вашем компьютере или, по крайней мере, не на вашем пути. В зависимости от того, какой у вас дистрибутив Linux и есть ли у вас root-доступ, вы можете зайти на сайт http://www.java.com/ чтобы загрузить нужную версию. Затем вы можете установить JAVA_HOME, чтобы указать на этот каталог. Помните, что это всего лишь соглашение и не должно использоваться для определения, установлена ли Java или нет.
На Linux вы можете запустить $(dirname $(dirname $(readlink -f $(which javac))))
На Mac вы можете запустить $(dirname $(readlink $(which javac)))/java_home
Я не уверен насчет окон, но я представляю where javac
достану тебя довольно близко
Просто еще одно решение, это кроссплатформенное (использует java
), и указывает на местоположение JRE.
java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home'
Выводит все java
текущие настройки, и находит тот, который называется java.home
,
Я знаю, что уже поздно, но эта команда ищет в каталоге /usr/, чтобы найти для вас java
sudo find /usr/ -name *jdk
Результаты к
/usr/lib/jvm/java-6-openjdk
/usr/lib/jvm/java-1.6.0-openjdk
К вашему сведению, если вы работаете на Mac, JAVA_HOME в настоящее время находится по адресу
/System/Library/Frameworks/JavaVM.framework/Home
Чтобы показать значение переменной окружения, которую вы используете:
echo $ VARIABLE
так в вашем случае будет:
echo $ JAVA_HOME
Если вы не установили его, вы можете добавить в свой .bashrc
файл:
export JAVA_HOME = $ (ссылка для чтения -f /usr/bin/java | sed "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-install-dir; экспорт JAVA_HOME
- Оболочка C:setenv JAVA_HOME jdk-install-dir
Вот улучшение, захватывая только каталог в stdout:
java -XshowSettings:properties -version 2>&1 \
| sed '/^[[:space:]]*java\.home/!d;s/^[[:space:]]*java\.home[[:space:]]*=[[:space:]]*//'
Вы можете проверить из командной строки, выполнив эту команду
echo $JAVA_HOME
. Если Java установлена, но путь не указан, вам необходимо указать путь к вашей установке Java. я предпочитаю использовать
sudo update-alternatives --config java
в котором перечислены все установленные версии с пометкой текущей активной и предоставляется диалоговое окно для переключения:
Есть 3 программы, которые предоставляют «java». Команда выбора -------------------------------------------------------------- 1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.14.0.9-2.fc35.x86_64/bin/java) 2 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.2.0.8-1.fc35.x86_64/bin/java) *+ 3 /usr/java/jdk-17.0.2/bin/java Введите, чтобы сохранить текущий выбор[+], или введите номер выбора:
из приведенного выше списка вы можете выбрать версию Java, которую вы хотите использовать по умолчанию. Чтобы установить
JAVA_HOME
к варианту 3, например, вы можете сделать это таким образом
export JAVA_HOME=/usr/java/jdk-17.0.2
http://www.gnu.org/software/sed/manual/html_node/Print-bash-environment.html
Если вы действительно хотите получить некоторую информацию о вашем BASH, поместите этот скрипт в ваш.bashrc и посмотрите, как он пролетает. Вы можете прокручивать и просматривать его.