5

На моем linux box, после ввода which java , я получаю

/ USR / бен / Java

После ввода whereis java , я получаю

Java: /usr /bin /java /etc /java /usr /share /java /usr/share/man/man1/java.1.gz

Каковы значения этих двух результатов? При настройке JAVA_HOME, какой я должен использовать?

5 ответов5

4

От каких различий

which   (1) - shows the full path of (shell) commands
whereis (1) - locate the binary, source, and manual page files for a command

Я бы использовал, which поскольку он показывает вам, где находится только двоичный файл, как я полагаю, это все, что вам нужно. Однако Java может быть установлен в другом месте , и which не сообщают бы его , как он выполняет поиск только для исполняемого файла или сценария в каталогах , перечисленных в переменной окружения PATH

0

which <executable> возвращает первый найденный исполняемый файл в вашей переменной PATH. Другими словами, что будет выполнено, если <executable> введен как команда.

0

JAVA_HOME должен быть родительской папкой, содержащей JDK или JRE, или другими словами, он имеет папки /lib , /bin и т.д. Из дистрибутива Java, которые содержат библиотеки / зависимости для Java Runtime, а также исполняемые файлы. В вашем случае кажется, что лучше всего подойдет /usr/share/java - проверьте, есть ли там подпапки из дистрибутива.

which команда возвращает первое совпадение исполняемого файла, тогда как whereis находит другие совпадения вместе с исполняемым файлом.

0

Вот отрывок от человека, где:

  whereis  -  locate the binary, source, and manual page files for a command

Таким образом, вторая строка, которую вы получаете, содержит как двоичное местоположение, так и ресурсы, используемые этим приложением, такие как расположение страницы руководства и источники ...

Если вы хотите установить свой PATH , он должен указывать на /usr/bin/

Если вы хотите установить JAVA_HOME , чтобы получить реальную среду разработки в linux, я советую вам вручную поддерживать java jdk.

Дома я устанавливаю java jdk в /usr/local/java/jdk1.6...

и я делаю символическую ссылку в /usr/local/java/jdk которая указывает на желаемый jdk.

Моя переменная JAVA_HOME всегда указывает на /usr/local/java/jdk

На мой взгляд, дистрибутивы не делают удовлетворительной работы по созданию действительно хорошей среды Java для разработчиков.

С уважением, Стефан

0

Ни один из тех.

JAVA_HOME должен указывать на корневую папку вашего JDK

в моей системе:

$ echo $JAVA_HOME 
/etc/java-config-2/current-system-vm

$ ll /etc/java-config-2/current-system-vm 
lrwxrwxrwx 1 root root 24 mai   16  2009 /etc/java-config-2/current-system-vm -> /usr/lib/jvm/sun-jdk-1.6

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .