Не удается найти JDK в виртуальной машине Linux

#java #linux

#java #linux

Вопрос:

Я пытаюсь найти JDK для настройки jstatd, но не могу его найти.

Когда я печатаю java -version , я получаю следующий ответ

 java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
  

Затем я попытался найти его, используя следующие 2 команды:

  1. which java

Ответ: /usr/bin/java

Я пытался cd это сделать, но я получаю -bash: cd: /usr/bin/java: Not a directory

  1. Затем я попробовал это whereis java
    Ответ: java: /usr/bin/java /usr/bin/X11/java /usr/share/java /usr/share/man/man1/java.1.gz

Я снова попытался записать его на компакт-диск. Но все еще не каталог. Где он может быть установлен?

Комментарии:

1. После ответов вы сказали, что нашли его в /usr/lib/jvm. Вот где находится JVM; вы спрашиваете о JDK. Вы должны сделать which javac .

2. @Klitos Kyriacou Да, я тоже подумал то же самое. Поэтому я никогда не проверял jvm каталог. Но я нашел JDK внутри jvm каталога.

Ответ №1:

Вы уверены java , что двоичный файл не является символической ссылкой (возможно, второго уровня)? Я почти уверен, что это так.

Просто запустите ls -l /usr/bin/java и найдите фактическое местоположение.

Для меня конечное фактическое местоположение /usr/lib/jvm/java-7-openjdk-amd64/ :

 dmitry@dginzburg-win:~$ java -version
java version "1.7.0_101"
OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-0ubuntu0.14.04.1)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)
dmitry@dginzburg-win:~$ which java
/usr/bin/java
dmitry@dginzburg-win:~$ ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 Aug  14 16:23 /usr/bin/java -> /etc/alternatives/java
dmitry@dginzburg-win:~$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 46 Aug  14 16:23 /etc/alternatives/java -> /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
dmitry@dginzburg-win:~$ ls /usr/lib/jvm/java-7-openjdk-amd64/
bin  docs  jre  man
  

Комментарии:

1. Да. Я нашел его в /usr/lib/jvm/ . Спасибо!

Ответ №2:

Обычно jdk и jre находятся под /usr/lib/java или /usr/lib/jvm . Чтобы быть уверенным, выполните an ls -la $(which java) , это должна быть символическая ссылка, указывающая на реальный двоичный файл (возможно, вам придется повторить эту операцию, обычно, если есть альтернативы, эта ссылка может указывать на другую ссылку).

Комментарии:

1. Спасибо! Нашел его в / usr/lib/jvm . Я не знал, что он тоже может быть там.

Ответ №3:

/usr/bin/java не является файлом каталога. Вы можете найти файл конечного местоположения java, как показано ниже;

 readlink -f $(which java); 
  

расположение jdk по умолчанию обычно находится в /usr/lib/jvm/

Например; моя конфигурация :

 user@host:$ ls -alrt /usr/bin/java
lrwxrwxrwx 1 root root 22 Dec 19  2014 /usr/bin/java -> /etc/alternatives/java
  

/usr/bin/java ссылается на /etc/alternatives/java

 user@host:$ ls -alrt /etc/alternatives/java
lrwxrwxrwx 1 root root 39 Jul  7  2015 /etc/alternatives/java -> /usr/lib/jvm/java-8-oracle/jre/bin/java
  

/etc/alternatives/java ссылки на /usr/lib/jvm/java-8-oracle/jre/bin/java

 user@host:$/usr/lib/jvm/java-8-oracle/jre/bin$ ls -arlt /usr/lib/jvm/java-8-oracle/jre/bin/java
-rwxr-xr-x 1 root root 7734 Mar 27  2016 /usr/lib/jvm/java-8-oracle/jre/bin/java
  

первая буква в rwxr-xr-x означает, что этот тип файла — file, а не directory .

Комментарии:

1. /etc/alternatives/java это еще одна символическая ссылка, она должна указывать на реальную.