【发布时间】:2023-03-07 12:48:03
【问题描述】:
我们在应用程序中使用 install4j 8.0.8。自从应用程序的新版本发布以来,我们使用 Azul 的 JRE 11.0.10 并发现 Windows 10 下的少量用户无法加载应用程序,但出现异常:java.lang.UnsatisfiedLinkError: C:\Users\user\AppData\Local\thinkorswim\jre\bin\awt.dll: Can't find dependent libraries。我们无法在我们的机器上重现该问题。
我们在 Internet 上发现了其他应用程序的一些类似问题,据说可能是 Windows 安装损坏(可能是某些 DLL 已损坏)。许多页面都提到了msvcp140.dll。
使用 Windows 资源监视器,我们发现我们的应用程序(从 install4j 本地 EXE 启动器开始)从 c:\windows\system32 加载 msvcp140.dll,但 JRE 11 包含 bin 文件夹中的 DLL。然后我们在没有原生启动器的情况下运行我们的应用程序(只是java -jar),资源监视器显示msvcp140.dll 已从jre\bin 文件夹加载。
我们要求用户重复一遍,他们说可以使用java -jar 启动该应用程序。
我已经通过.vmoptions 文件使用了PATH 环境变量和java.library.path,但我无法强制启动器使用捆绑的JRE 中的DLL。
是否可以调整本机启动器以使其从 JRE bin 文件夹加载 DLL?
【问题讨论】:
-
您提到 JRE 11:当您切换到该版本时,问题是否开始出现?如果是,您以前使用的是什么 JRE?不幸的是,我没有解决这个特定问题的经验,但在找到根本原因和/或解决方案时,这类信息可能很有用。
-
感谢您的回答。是的,从 JRE 1.8.0_202 迁移到 JRE 11.0.10 后,问题就开始出现了。
标签: install4j