Сначала установите, 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
могут выявить, - проблема с разрешениями. Мне нужно было только чтение разрешений в библиотеке для запуска пользователя 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
файл дружественным для менеджера пакетов способом. Вы всегда можете просто скачать его прямо из одного из различных источников.