Installez d'abord libhsdis0-fcml
comme 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-oracle
vous 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 strace
de voir où vous java
cherchez. 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' -f
indicateur strace
car la JVM réelle est lancée en tant que processus enfant de la java
commande d' origine .
Parmi les problèmes strace
susceptibles 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 -version
sortie:
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.so
fichier (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.