Prima installa libhsdis0-fcml
come descritto nell'altra risposta 1 :
sudo apt-get install libhsdis0-fcml
Questo lo installa solo per OpenJDK. Stai comunque utilizzando java-8-oracle
, quindi dovrai copiarlo lì. Ecco l' esatto comando di copia che ha funzionato per me:
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
Se il problema persiste, potresti provare strace
a vedere dove java
stai guardando. Ero solito:
strace -f java -XX:CompileCommand='print, *.*' ... |& grep hsdis
per ottenere un output in questo modo:
[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
Puoi vedere che i luoghi e i nomi che stavi cercando sono sicuramente tra quelli delle ricerche JDK (nel mio caso, probabilmente avrebbe cercato più posti, ma si è fermato poiché l'ultima posizione sopra è dove ha trovato l'oggetto condiviso).
Si noti che è assolutamente necessario il -f
flag strace
poiché la JVM effettiva viene avviata come processo figlio del java
comando originale .
Tra i problemi che strace
potrebbero rivelarsi è un problema di autorizzazioni. Avevo bisogno solo di permessi di lettura sulla libreria per l'avvio dell'utente java
.
La mia java -version
uscita:
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 In realtà, questo è solo un modo per ottenere un file (presumibilmente funzionante) hsdis.so
in modo amichevole per il gestore dei pacchetti. Puoi sempre semplicemente scaricarlo direttamente da una delle varie fonti.