Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 找不到库:jvm.dll。什么';这是怎么回事?_Java_Javapackager - Fatal编程技术网

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

Java 找不到库:jvm.dll。什么';这是怎么回事?,java,javapackager,Java,Javapackager,在安装了我的应用程序的某些计算机(但不是所有计算机)中,在看似成功的安装之后,当您尝试运行它时,它会显示以下错误: 该文件存在于该目录中,因此,我不确定为什么它说找不到库 该错误之后是 最后: 然后什么也没发生。应用程序无法启动。知道发生了什么事吗 一些人指出了这个bug报告,它似乎在谈论这个问题:但我已经用8u162和8u172(早期访问,特别是jdk-8u172-ea-bin-b03-windows-x64-18_jan_2018)构建了我的应用程序,结果是一样的。它发生在Window

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

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

该错误之后是

最后:

然后什么也没发生。应用程序无法启动。知道发生了什么事吗

一些人指出了这个bug报告,它似乎在谈论这个问题:但我已经用8u162和8u172(早期访问,特别是jdk-8u172-ea-bin-b03-windows-x64-18_jan_2018)构建了我的应用程序,结果是一样的。它发生在Windows10Pro 1703和1709上


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

可能是您受到了影响8u151并在8u162中修复的影响

在Windows10EnterpriseBuild1709和各自的JDK版本上再次验证,并可能确认报告的问题。当使用JDK 8u151/8u152进行检查时,会弹出一个“未能找到库:jvm.dll”和随后的错误对话框


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

这是一条有点错误的错误消息,实际上意味着找不到depend.dll的某些部分。jvm.dll的一个依赖项不是jvm.dll本身

发件人:

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

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

看起来相关:和“但我在64位计算机、64位Windows和64位版本的应用程序中看到了完全相同的错误。”是否碰巧安装了32位Java?如果可能,将安装程序配置为在机器上的Java_HOME中检测Java的位,然后决定要安装哪个版本的应用程序。特定于JVM?您是否检查过它是否仅在Oracle one或OpenJDK中出现?您是否可以检查
管理工具中的
事件日志
,并查看是否找到与此相关的信息?有趣的是,它找不到的不是
bin\server\jvm.dll
bin\client\jvm.dll
。在每种情况下,是否有另一种情况?如果是这样,一种可能性是JVM试图自动检测机器是否为“服务器类”。这通常是基于。我将重复检查,以防混淆,但据我所知,这发生在使用JDK 8u162构建的二进制文件上。我在客户端和构建之间使用了类似的java版本,只是想再次检查一下,你能用同样的java版本来构建它来检查它是否是jdk的问题吗?@Karol:我刚刚用java 1.8.0_162,64位重新构建了它,它导致了同样的问题。所以这不是一个8u152问题得到解决。至少对我来说不是这样。@Paizo:与什么相同的Java版本?假设客户端有版本1.8.0_123,尝试用相同的版本构建应用程序,仍然会出现问题?只是为了确认一下,您在源代码repo中添加了一个二进制dll?无论如何,我没有使用InnoSetup。这是为了将应用程序打包为exe,而不是msi,对吗?不,这都是关于本机库,而不是源代码。您需要将msvcr100.dll放在生成的.exe文件附近。从何处获取msvcr100.dll?从JDK installationOk中的“bin”文件夹获取。下一个问题是如何将其放置在.exe附近。javafxpackager在一次操作中生成所有EXE并将其打包到MSI中。