Домашний каталог 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-openjdkFYI, если вы находитесь на 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
в случае, если вы не установили его, вы можете добавить в свой
.bashrcfile:экспорт переменной 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 и смотреть, как он пролетает мимо. Вы можете прокручивать и просматривать его.