我构建了一个通过U盘交付的Java应用程序。为了确保兼容性,我附带了一个合适的JVM。我创建了一个EXE,它只是用应用程序jar调用这个JVM。
现在的问题是:一些病毒扫描程序采取积极的行动,只是删除可执行文件!
我尝试了一个用“批处理文件转可执行文件”工具制作的可执行文件和一个自己用C编写的可执行文件(调用ShellExecute);两个版本都被诺顿声纳检测并清除,但我可以想象其他病毒扫描程序可能会做出类似的反应。
我最初选择了windows快捷方式,但这些快捷方式似乎不支持相对路径。批处理文件也是不可接受的,因为我不想显示命令控制台。
发布于 2009-11-10 04:51:42
你可以尝试使用许多可配置的java启动器中的一个-它们可能不太可能被AV所接受:
(完全披露:我在winrun4j上工作)
发布于 2009-11-09 23:31:21
在批处理文件中使用start/b java.exe ...。会有短暂的闪烁,但窗口很快就会消失。
至于病毒扫描程序删除你的文件:使用一个有硬件开关的棒,它可以使它写保护。这是为了你自己的安全:仅仅因为有病毒扫描程序并不意味着没有病毒。如果没人能在棍子上写字,那就没人能弄乱它。
发布于 2009-11-10 01:11:31
如果你使用javaw.exe启动你的应用程序,你不应该有一个相关的控制台窗口,这样就可以绕过将bat文件转换成.exe的需要。
您还可以考虑将您的应用程序作为Webstart应用程序分发,由此关联的jnlp文件描述了JVM所需的最低版本。
https://stackoverflow.com/questions/1701674
复制相似问题