Спочатку встановіть, libhsdis0-fcml
як описано в іншій відповіді 1 :
sudo apt-get install libhsdis0-fcml
Це встановлено лише для OpenJDK. Однак ви користуєтеся ними java-8-oracle
, тому вам потрібно буде скопіювати його туди. Ось точна команда копіювання, яка працювала для мене:
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
Якщо це все ще не працює, ви можете спробувати strace
побачити, де java
шукаєте. Я використав:
strace -f java -XX:CompileCommand='print, *.*' ... |& grep hsdis
щоб отримати такий вихід:
[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
Ви можете бачити, що місця та назви, які ви намагалися, безумовно, є серед тих, що шукали JDK (у моєму випадку, мабуть, він би шукав більше місць, але зупинився, оскільки останнє розташування вище - там, де він знайшов спільний об’єкт).
Зауважте, що вам точно потрібен -f
прапор, strace
оскільки власне JVM запускається як дочірній процес оригінальної java
команди.
Серед проблем, які strace
можуть виявити, є проблема дозволів. Мені потрібно було лише читати perms у бібліотеці для запуску користувача java
.
Мій java -version
вихід:
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 Дійсно, це лише спосіб отримати (імовірно працюючий) hsdis.so
файл дружним чином для менеджера пакунків. Ви також можете просто завантажити його безпосередньо з одного з різних джерел.