找不到库:jvm.dll。这是怎么回事?

2022-09-03 16:05:35

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

enter image description here

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

该错误后跟

enter image description here

最后:

enter image description 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上。

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


答案 1

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

在具有相应 JDK 版本的 Windows 10 企业版 1709 上再次验证,并可以确认报告的问题。“找不到库:jvm.dll”和后续的错误对话框弹出,如使用 JDK 8u151/8u152 检查时所述。

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


答案 2

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

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

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

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

推荐