我有鬼问题。我已经在我的安装包中包含了 Java,这样我就不必依赖已经拥有 Java 的用户。问题是 javaw.exe 时不时地消失在我的包中!双击我的桌面快捷方式后,我收到一条消息,说它找不到 javaw.exe,并询问我是否要删除快捷方式。我无法确认它,但我认为它只会在 PC 重新启动时发生。但不是每次重启。这就是使它成为鬼问题的原因。我无法追踪导致它的原因或它何时发生。
这在 Vista 上发生过多次,在 XP Pro 上发生过一次(到目前为止)。当它发生在 XP Pro 上时,我的快捷方式也发生了变化。javaw.exe
被替换为java-rmi.exe
。这可能是 Windows 寻找解决方案的结果......因为我没有找到任何模式来删除 .exe 时,我无法测试这个问题是否存在于 XP Home 或 Win 7 上。
捷径是:
"C:\Program Files\My Application\jre6\bin\javaw.exe" -jar "C:\Program Files\My Application\main.jar"
在我的包中有 3 个使用 Java 的进程。它们都是针对同一个 jar 的,不同的是,我添加--argument
到最后以便运行 main.jar 的不同部分。
- 其中一个进程(在我的问题开始出现在 Vista 上后添加)在用户登录时启动,它处理系统托盘图标。它使用 Java、Swing 和 JavaFX。
- 一个从启动开始并以管理员身份在后台运行。这仅使用 Java。
- 另一个是当用户单击其中一个快捷方式时运行的 GUI 界面。这是 Java 和 JavaFX 的一个罕见的 Swing JDialog。
我正在使用 Java 6 和 JavaFX 2 build 36 或 40(不确定如何确定我拥有哪一个)。我在 XP Pro 上没有任何病毒扫描程序。Vista 确实有 Windows Defender,但没有别的。在 Vista 上,我手动运行了扫描仪,但 javaw.exe 没有受到影响。我的隔离区域中没有任何项目,也没有迹象表明 javaw.exe 已被 Windows Defender 删除。
编辑:我尝试重命名javaw.exe
为,myjavaw.exe
但它再次发生在 Vista 上。Windows Defenders Quarantine 区域中没有任何项目。我认为可以排除病毒扫描程序。这一次,它发生在重新启动后。也许我的后台进程没有正确结束?这会导致Windows删除exe吗?
这是我的问题还是与 Java 或 JavaFX 有关,我该如何预防?