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
Ответы
Ответ 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