Не удалось найти библиотеку: jvm.dll. Что тут происходит?

На некоторых компьютерах, но не на всех, на которых установлено мое приложение, после того, что выглядит как успешная установка, при попытке запустить оно выдает следующую ошибку:

введите описание изображения здесь

Файл присутствует в этом каталоге, поэтому я не уверен, почему он говорит, что не смог найти библиотеку.

Эта ошибка сопровождается

введите описание изображения здесь

И наконец:

введите описание изображения здесь

и тогда ничего не происходит. Приложение не запускается. Есть идеи, что происходит?

Некоторые люди указали на этот отчет об ошибке, который, кажется, говорит об этой проблеме: https://bugs.openjdk.java.net/browse/JDK-8191176 но я построил свое приложение как с 8u162, так и с 8u172 (ранний доступ, особенно, jdk-8u172-ea-bin-b03-windows-x64-18_jan_2018), и результат тот же. Это происходит на Windows 10 Pro 1703, а также 1709.

Я не уверен, что еще может быть актуальным.

2 ответа

Решение

Возможно, на вас влияет JDK-8191176: Самостоятельное приложение JavaFX завершается с ошибкой "Не удалось найти библиотеку: jvm.dll", которая влияла на 8u151 и была исправлена ​​в 8u162.

Проверено снова в Windows 10 Enterprise build 1709 с соответствующими версиями JDK и может подтвердить проблему, как сообщается. "Не удалось найти библиотеку: jvm.dll" и последующие диалоговые окна с ошибками отображаются, как описано при проверке с помощью JDK 8u151/8u152.

Возможно, вы можете проверить, что происходит, когда вы работаете с 8u162 или новее.

Это ошибочное сообщение об ошибке, фактически означает, что некоторые из.dll не найдены. Одна из зависимостей jvm.dll, а не сама jvm.dll.

С https://bugs.openjdk.java.net/browse/JDK-8191176:

Для тех, кто ищет решение, я извлек "msvcr100.dll" из Java и добавил его в исходный код приложения. При использовании JavaPackager при создании моего проекта JavaFX (с использованием InnoSetup) я просто добавляю эти строки в скрипт setup.iss, чтобы поместить файл рядом с application.exe:

[Files] 
Source: "YOUR_APPLICATION\app\msvcr100.dll"; 
DestDir: "{app}"; 
Flags: ignoreversion 
Другие вопросы по тегам