J'ai installé Oracle JDK à partir du PPA webupd8team/Java
, puis le package visualvm
. Au démarrage de visualvm
, j'obtiens le message d'erreur suivant:
[beni:~]$ visualvm
No jdkhome found
Mon $Java_HOME
est défini correctement sur /usr/lib/jvm/Java-7-Oracle
.
De plus, lorsque je lance visualvm
avec la propriété jdkhome
, la même erreur se produit:
[beni:~]$ visualvm --jdkhome $Java_HOME
No jdkhome found
visualvm
vérifie les trois répertoires suivants pour un JDK:
/usr/lib/jvm/Java-7-openjdk-$Arch
/usr/lib/jvm/Java-8-openjdk-$Arch
et/usr/lib/jvm/default-Java
A partir du script de démarrage /usr/bin/visualvm
:
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
Donc, faites de /usr/lib/jvm/default-Java
un lien symbolique vers $Java_HOME
, et visualvm
trouvera le bon JDK.
cd /usr/lib/jvm
Sudo ln -Tsf Java-7-Oracle default-Java
Dans mon cas, même le lien symbolique de default-Java n'a pas résolu le problème. Pour réparer, j'ai fait:
Edité jvisualvm et ajouter une "corbeille" dans la variable jdkhome
$ Sudo vi /usr/bin/jvisualvm
jdkhome =/tmp
Ensuite, le paramètre de transmission du programme a été lancé:
/usr/bin/jvisualvm --jdkhome /usr/lib/jvm/myJava7
Remarque: aujourd'hui (2016), ma version ne fonctionne qu'avec Java7
Update : maintenant, en 2017, avec la version 1.3.8, cela fonctionne avec Java 8. Mais je devais ajouter visualvm_jdkhome=/tmp
, dans/usr/bin/visualvm