找不到库: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上。

我不确定还有什么可能是相关的。

可能是您受JDK-8191176的影响:JavaFX自包含应用程序失败,错误“找不到库:jvm.dll” ,这影响了8u151并在8u162中得到修复。

在具有相应JDK版本的Windows 10 Enterprise build 1709上再次进行了validation,并且可以按照报告确认问题。 使用JDK 8u151 / 8u152检查时,弹出“无法找到库:jvm.dll”和后续错误对话框。

也许您可以检查当您使用8u162或更新版本时会发生什么。

这是错误的错误消息,实际上意味着找不到某些依赖.dll。 jvm.dll的依赖项之一不是jvm.dll本身。

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

对于任何寻求解决方案的人,我从Java中提取了“msvcr100.dll”并将其添加到我的应用程序源中。 在构建我的JavaFX项目时使用JavaPackager(使用InnoSetup)时,我只需在setup.iss脚本中添加这些行,以便将文件放在application.exe旁边:

 [Files] Source: "YOUR_APPLICATION\app\msvcr100.dll"; DestDir: "{app}"; Flags: ignoreversion