0

我们遇到了一个奇怪的问题 - 有没有人看到类似的东西?

我们有一个 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

4

1 回答 1

0

这看起来是由病毒检查程序引起的,病毒检查程序将所有 .jar 文件隔离为“可疑”。据推测,当 java.exe 试图读取模块路径上的文件时,病毒检查软件进行了干预,结果是 java.exe 无法找到模块信息,因此报告了丢失的模块。

感谢那些花时间回复的人。

于 2021-03-18T10:57:32.023 回答