Cài đặt đầu tiên libhsdis0-fcml
như đượ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ử strace
xem 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 -f
cờ strace
vì JVM thực tế được khởi chạy như là một tiến trình con của java
lệnh gốc .
Trong số các vấn đề strace
có 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.so
tệ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.