2016-10-25 2 views
1

Я использую SSH Client. Я запустил переменную окружения по-прежнемуКак найти точное место, где установлена ​​java в unix

echo $ JAVA_HOME ничего не возвращает. Я хочу найти точное место, где java установлен в unix. есть ли какая-нибудь другая команда, которая может мне помочь?

ответ

5

с echo $JAVA_HOME не дает вам пути, эта переменная, вероятно, еще не установлена. Вместо этого команда which даст вам путь.

which java 

Обратите внимание, что это не может дать вам точное место, если команда является symlink. Если это так, вы должны решить symlink с помощью других методов. say readlink или через python (os.path.realpath(path))

+0

NB: путь может быть символическая –

+0

я отправил ответ, который действительно включает обработку символьной ссылки. – dudel

1

Можете ли вы бежать? whereis java

Насколько я помню, это дает символическую ссылку на местоположение.

1

Вы можете попробовать эти 2 команды

$ which java

$ whereis java

2

Команда which дает путь к java двоичная:

which java 

Но если это только symlink (например, используется alternatives), это не даст вам реальный pa го бинарного. Вы можете либо список, где символическая ссылка указывает на с с ls -l:

ls -l `which java` 

, который для меня выводит

/usr/bin/java -> /etc/alternatives/java 

, а затем следуют символические ссылки, пока вы находитесь в источнике.В качестве альтернативы, если таковые имеются в вашей системе, используйте readlink команду в сочетании с -f вытекающее симлинки для вас:

readlink -f `which java` 

Edit: Анкит писал в комментариях, что readlink не является стандартной командой UNIX и -f также не кажется работать на Mac, так что это не может быть вариантом для вас, хотя this страница описывает, как получить greadlink, чтобы получить эту функцию на макинтош через brew:

заварить установить Coreutils greadlink -f which java

+0

readlink не является стандартным для unix. кроме того, он будет терпеть неудачу в случае, если путь symlink также является символической ссылкой. – Ankit

+0

Вот что значит '-f'. Он следует за символическими ссылками, пока не станет символьной линией. – dudel

+0

на mac, -f недействителен. – Ankit

0

Попробуйте

$ which java

может привести выход в

/usr/bin/java

Смежные вопросы