Installez d'abord libhsdis0-fcmlcomme décrit dans l' autre réponse 1 :
sudo apt-get install libhsdis0-fcml
Cela l'installe uniquement pour OpenJDK. Vous utilisez cependant, java-8-oraclevous devrez donc le copier là-bas. Voici la commande de copie exacte qui a fonctionné pour moi:
sudo cp /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/hsdis-amd64.so /usr/lib/jvm/java-8-oracle/jre/lib/amd64/hsdis-amd64.so
Si cela ne fonctionne toujours pas, vous pouvez essayer stracede voir où vous javacherchez. J'ai utilisé:
strace -f java -XX:CompileCommand='print, *.*' ... |& grep hsdis
pour obtenir une sortie comme celle-ci:
[pid 10783] open("/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libhsdis-amd64.so", O_RDONLY <unfinished ...>
[pid 10783] open("/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libhsdis-amd64.so", O_RDONLY|O_CLOEXEC <unfinished ...>
[pid 10783] open("/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libhsdis-amd64.so", O_RDONLY|O_NONBLOCK <unfinished ...>
[pid 10783] open("/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/hsdis-amd64.so", O_RDONLY <unfinished ...>
[pid 10783] open("/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/hsdis-amd64.so", O_RDONLY|O_CLOEXEC <unfinished ...>
[pid 10783] open("/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/hsdis-amd64.so", O_RDONLY|O_NONBLOCK <unfinished ...>
[pid 10783] open("/usr/lib/jvm/java-8-oracle/jre/lib/amd64/hsdis-amd64.so", O_RDONLY <unfinished ...>
[pid 10783] open("/usr/lib/jvm/java-8-oracle/jre/lib/amd64/hsdis-amd64.so", O_RDONLY|O_CLOEXEC) = 14
Vous pouvez voir que les lieux et les noms que vous essayez sont certainement parmi ceux que le JDK recherche (dans mon cas, il aurait probablement cherché plus d'endroits, mais s'est arrêté depuis le dernier emplacement ci-dessus où il a trouvé l'objet partagé).
Notez que vous avez absolument besoin de l' -findicateur stracecar la JVM réelle est lancée en tant que processus enfant de la javacommande d' origine .
Parmi les problèmes stracesusceptibles de révéler, il y a un problème d'autorisations. Je n'avais besoin que de perm de lecture sur la bibliothèque pour le lancement de l'utilisateur java.
Ma java -versionsortie:
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
1 Vraiment, ce n'est qu'un moyen d'obtenir un hsdis.sofichier (vraisemblablement fonctionnel) d'une manière conviviale pour le gestionnaire de paquets. Vous pouvez toujours le télécharger directement à partir de l'une des différentes sources.