找不到库:jvm.dll。这里发生了什么?

Failed to find library: jvm.dll. What's going on here?

在安装了我的应用程序的某些计算机(但不是全部)中,看起来安装成功后,当您尝试 运行 它时,它会显示此错误:

该文件存在于该目录中,因此,我不确定为什么它说找不到库。

该错误后跟

最后:

然后什么也没有发生。应用程序不启动。有什么想法吗?

有些人指出了这个似乎在谈论这个问题的错误报告: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 Self-Contained Application fails with error "Failed to find library: jvm.dll"的影响,影响了8u151,在8u162中修复了。

Verfied again on Windows 10 Enterprise build 1709 with respective JDK versions and could confirm the issue as reported. A "Failed to find library: jvm.dll" and subsequent error dialogs popped up as described when checked with JDK 8u151/8u152.

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

这是一个有点错误的错误信息,实际上意味着一些依赖的.dll 没有找到。 jvm.dll 的依赖之一不是 jvm.dll 本身。

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

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

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