Pertama instal libhsdis0-fcml
seperti yang dijelaskan dalam jawaban lain 1 :
sudo apt-get install libhsdis0-fcml
Ini hanya menginstalnya untuk OpenJDK. Namun, Anda menggunakan java-8-oracle
, jadi Anda harus menyalinnya di sana. Inilah perintah salin tepat yang bekerja untuk saya:
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
Jika itu masih tidak berhasil, Anda dapat mencoba strace
melihat di mana Anda java
melihat. Saya menggunakan:
strace -f java -XX:CompileCommand='print, *.*' ... |& grep hsdis
untuk mendapatkan output seperti ini:
[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
Anda dapat melihat bahwa tempat dan nama yang Anda coba pasti berada di antara pencarian JDK (dalam kasus saya, itu mungkin akan mencari lebih banyak tempat, tetapi berhenti karena lokasi terakhir di atas adalah tempat ia menemukan objek yang dibagikan).
Perhatikan bahwa Anda benar-benar membutuhkan -f
bendera strace
sejak JVM yang sebenarnya diluncurkan sebagai proses anak dari java
perintah asli .
Di antara masalah yang strace
mungkin terungkap adalah masalah izin. Saya hanya perlu izin baca di perpustakaan untuk peluncuran pengguna java
.
java -version
Output saya :
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 Sungguh, ini hanya cara untuk mendapatkan file (mungkin berfungsi) hsdis.so
dengan cara yang ramah paket-manajer. Anda selalu dapat mengunduhnya langsung dari salah satu dari berbagai sumber juga.