Primeiro instale libhsdis0-fcml
como descrito na outra resposta 1 :
sudo apt-get install libhsdis0-fcml
Isso o instala apenas no OpenJDK. No entanto, você está usando java-8-oracle
, então você precisará copiá-lo para lá. Aqui está o comando exato de cópia que funcionou para mim:
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 isso ainda não estiver funcionando, você pode tentar strace
ver para onde java
está olhando. Eu usei:
strace -f java -XX:CompileCommand='print, *.*' ... |& grep hsdis
para obter uma saída como esta:
[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
Você pode ver que os lugares e nomes que você estava tentando definitivamente estão entre os que o JDK pesquisa (no meu caso, provavelmente teria pesquisado mais lugares, mas parou porque o último local acima é onde encontrou o objeto compartilhado).
Observe que você definitivamente precisa do -f
sinalizador, strace
pois a JVM real é ativada como um processo filho do java
comando original .
Entre os problemas que strace
podem revelar, há um problema de permissões. Eu só precisava de permissões de leitura na biblioteca para o lançamento do usuário java
.
Minha java -version
saída:
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 Realmente, esta é apenas uma maneira de obter um hsdis.so
arquivo (presumivelmente funcionando) de uma maneira amigável para o gerenciador de pacotes. Você sempre pode baixá-lo diretamente de uma das várias fontes também.