首先,这不是从 Java 类制作 EXE 的常见问题的重复。我不需要这样做。
为了解决 NetBeans RFE #64612而无需手动步骤,我需要一个 Java (6+) 库,它可以获取现有的Windows*.exe
文件并将其图标替换为通用格式的替代品。通用且预构建的可执行文件(以二进制形式分发)已经知道如何加载特定于应用程序的配置文件,然后使用各种应用程序 JAR 等启动 JRE;唯一的问题是它有一个通用图标,我想将该图标作为纯 Java 构建的一部分替换为特定于应用程序的图标,因此它看起来更漂亮。
该库必须在非病毒开源许可下可用;跨平台(必须在 Windows、Linux、Mac、Solaris 上运行),因此不能 fork 一些特定于操作系统的帮助工具;并且必须接受 PNG 输入,尽管 EXE 必须在 XP 上运行,因此根据 Wikipedia应该嵌入 BMP 格式。在高层次上,假设 Ant 作为构建工具,我想要这样的东西:
<replaceicon from="app.exe" to="hello.exe" icon="hello.png"/>
有谁知道是否已经存在符合这些规范的工具?从各种网络搜索中,我找到了 Launch4J,但这似乎只是为了真正的工作而分叉Windres,因此不是很便携。我发现JSmooth看起来更有希望——似乎包含处理 ICO 编解码器和操作 PE 文件的 Java 代码——但它是 GPL。WinRun4J看起来使用本机代码进行图标操作,尽管我很难跟踪它的来源。Jimi应该处理 ICO 格式(就此而言,标准javax.imageio
似乎也是如此),但我想没有更新 PE 资源的工具。