Подтвердить что ты не робот

Visualvm не работает с "Нет jdkhome found" на Ubuntu 15.10 с Oracle JDK

Я установил Oracle JDK из webupd8team/java PPA, а затем установил пакет visualvm. При запуске visualvm появляется следующее сообщение об ошибке:

[beni:~]$ visualvm
No jdkhome found

Мой $JAVA_HOME установлен правильно на /usr/lib/jvm/java-7-oracle.

Кроме того, при запуске visualvm с набором свойств jdkhome я получаю ту же ошибку:

[beni:~]$ visualvm --jdkhome $JAVA_HOME
No jdkhome found
4b9b3361

Ответ 1

visualvm проверяет следующие три каталога для JDK:

  • /usr/lib/jvm/java-7-openjdk-$ARCH
  • /usr/lib/jvm/java-8-openjdk-$ARCH и
  • /usr/lib/jvm/default-java

От начала /usr/bin/visualvm script:

visualvm_jdkhome=
for j in /usr/lib/jvm/java-7-openjdk-$ARCH /usr/lib/jvm/java-8-openjdk-$ARCH /usr/lib/jvm/default-java; do
    if [ -x $j/bin/javac ]; then
       visualvm_jdkhome=$j
       break
    fi
done

Итак, сделайте /usr/lib/jvm/default-java символическую ссылку на $JAVA_HOME, а visualvm найдет правильный JDK.

cd /usr/lib/jvm
sudo ln -Tsf java-7-oracle default-java

Ответ 2

В моем случае даже символическая ссылка default-java не устранила проблему. Чтобы исправить это, я сделал:

Отредактированный jvisualvm и добавьте любой "мусор" в переменную jdkhome

  • $ sudo vi /usr/bin/jvisualvm

jdkhome =/TMP

Затем запустил параметр передачи программы:

  • /usr/bin/jvisualvm --jdkhome /usr/lib/jvm/myJava7

Примечание: сегодня (2016), когда моя версия работает только с java7

Обновить: теперь, в 2017 году, используя версию 1.3.8, он работает с Java 8. Но мне нужно добавить visualvm_jdkhome=/tmp в/usr/bin/visualvm