【发布时间】:2011-10-28 20:47:48
【问题描述】:
问题
目前我使用 exe4j 4.4.2 将我们的客户端应用程序包装在 Windows 原生可执行文件中,但结果与 Windows 7 的集成效果不佳。
例如:当我在任务栏中单击鼠标右键时,它只提供一个关闭应用程序的弹出窗口,但没有固定。而 Eclipse 的 Equinox 启动器则虚张声势。
我正在寻找具有以下功能的 java exe 启动器:
- 将 jar 包装在 Windows 本机可执行文件中(没有 Java Web Start 或类似的)
- 不从可执行文件中提取 jar
- 不需要“程序文件”中的写入权限
- 使用可执行文件名作为进程名(仅一个进程)
- 与 Windows 7 完美集成(尤其是固定在任务栏中)
- 允许设置 JVM 参数(尤其是堆大小)
- JRE 搜索的灵活自定义
- 轻量级
- 积极维护
- 在 Ant 构建中很好地集成
- 最好是免费的
我已经检查了以下内容:
exe4j
- 缺少 Windows 7 集成
- 它不贵,但订购和 将许可证分发给构建机器是一件痛苦的事情。
- JRE 搜索不够灵活
日食春分
- 不轻量级
- 似乎做任何我想做的事,除了我不知道怎么做 将它与非基于 Eclipse 的应用程序一起使用。
- 我可以在 OSGI、PDE-Build 世界之外使用它吗?
WinRun4J
- JRE 搜索没有很好的记录
- 尽管功能集令人难以置信,但似乎并未广泛使用,我缺少什么?
Launch4J
- 不支持在 Windows 7 中设置进程名称(错误 ID 3353972)。 有一个补丁(Bug ID 1670471),但它已被引用拒绝 到已死的 jliftoff。
- JRE 搜索不够灵活。
JS平滑
- 似乎没有积极维护。
- 最新版本是 2007 年,远早于 Windows 7。
还有其他选择吗? 是否有机会将 Eclipse 启动器与非基于 Eclipse 的应用程序一起使用?
【问题讨论】:
-
听起来你真正想要的是关于在没有 Equinox 的情况下使用 Eclipse 原生启动器的方法。
-
AFAIK,intellij idea 使用的是 exe4j,可以固定。您可能需要通过代码执行某些操作,具体我记不太清了。
-
原生 Eclipse 启动器是一个 C shim,可以在 Eclipse 的 Git 存储库之一中找到。
-
也可以参考这个问题:stackoverflow.com/questions/1834599/…
-
@bbuser:我对这些部分也知之甚少,但从我在文档中读到的内容来看,启动器和 Equinox(或 SWT)并没有太紧密耦合。并且启动器应该是一个相当小的软件,所以应该可以轻松地提取它。