Cài đặt đầu tiên libhsdis0-fcmlnhư được mô tả trong câu trả lời khác 1 :
sudo apt-get install libhsdis0-fcml
Điều này chỉ cài đặt nó cho OpenJDK. Tuy nhiên, bạn đang sử dụng java-8-oracle, vì vậy bạn sẽ cần sao chép nó ở đó. Đây là lệnh sao chép chính xác làm việc cho tôi:
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
Nếu điều đó vẫn không hoạt động, bạn có thể thử stracexem bạn javađang tìm kiếm ở đâu. Tôi đã sử dụng:
strace -f java -XX:CompileCommand='print, *.*' ... |& grep hsdis
để có được đầu ra như thế này:
[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
Bạn có thể thấy rằng các địa điểm và tên bạn đang thử chắc chắn nằm trong số các tìm kiếm JDK (trong trường hợp của tôi, nó có thể đã tìm kiếm nhiều địa điểm hơn, nhưng đã dừng lại vì vị trí cuối cùng ở trên là nơi tìm thấy đối tượng được chia sẻ).
Lưu ý rằng bạn chắc chắn cần -fcờ stracevì JVM thực tế được khởi chạy như là một tiến trình con của javalệnh gốc .
Trong số các vấn đề stracecó thể tiết lộ là một vấn đề quyền. Tôi chỉ cần đọc perms trên thư viện cho người dùng khởi chạy java.
java -versionĐầu ra của tôi :
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 Thực sự, đây chỉ là một cách để có được một hsdis.sotệp (có lẽ đang hoạt động) theo cách thân thiện với người quản lý gói. Bạn luôn có thể tải xuống trực tiếp từ một trong những nguồn khác nhau.