我们遇到了一个奇怪的问题 - 有没有人看到类似的东西?
我们有一个 Java/JavaFX 桌面应用程序,它已经在 Windows 平台(Server 2012)上成功运行了将近一年。
最近,我们将应用程序移至不同的 Windows 平台(Server 2019,虚拟机)。
该应用程序安装在共享驱动器上,每天启动数次。它最初运行成功,但在一天中的某个时间点将不再启动。
命令行是:
java -p WolfToolkit.jar;WolfToolkit_mods -m com.mycompany.wolftoolkit/com.mycompany.start.StartGUI
WolfToolkit_mods 是一个文件夹,其中包含所需模块的 jar。出现启动错误时,Java.exe 报告找不到不同的所需模块。经过大量诊断测试后,即使 Windows 资源管理器显示正确的内容,Java.exe 似乎也无法检测到 WolfToolkit_mods 文件夹中的任何 jar 文件。
如果我将文件夹 WolfToolkit_mods 复制到 WolfToolkit_mods2 并将命令更改为
java -p WolfToolkit.jar;WolfToolkit_mods2...
然后应用程序正确启动。
如果我只将其中一个 jar 文件重新复制到 WolfToolkit_mods 并使用原始命令,则只有该文件可见。如果重新复制所有文件,则应用程序运行正常。
因此,这种行为就像 Java 突然将 WolfToolkit_mods 视为空的,并且仅在将每个 jar 文件复制回时才检测到它。同时 Windows 没有发现任何问题。我还应该提到,在极少数情况下,Java.exe 突然开始报告 WolfToolkit.jar 是“模块格式无法识别”。同样,重新复制文件可以解决问题。
关于这可能是什么或如何诊断的任何想法?谢谢。
Windows Server 2019 标准版 v10.0
JVM:OpenJDK 64 位服务器 v11.0.10+9