Прежде всего, это не дублирует очень распространенный вопрос создания EXE из классов Java.Мне не нужно этого делать.
Для решения NetBeans RFE # 64612 без шагов вручную Мне нужна библиотека Java (6+), которая может занять существующий Windows *.exe
файл и замените его значок заменой в общем формате.Исполняемый файл, который является универсальным и предварительно собранным (распространяется в двоичной форме), уже знает, как загрузить файл конфигурации для конкретного приложения, а затем запустить JRE с различными JAR-файлами приложений и т. Д .;единственная проблема состоит в том, что у него есть общий значок, и я хотел бы заменить этот значок как часть чистой сборки Java значком для приложения, чтобы он выглядел красивее.
Библиотека должна быть доступна вневирусная лицензия с открытым исходным кодом;кроссплатформенный (должен работать в Windows, Linux, Mac, Solaris), поэтому не может быть запущен какой-то вспомогательный инструмент для конкретной ОС;и должен принимать ввод PNG, хотя EXE должен работать на XP, поэтому в соответствии с Википедией должен включать формат BMP.На высоком уровне, если предположить, что Ant - инструмент сборки, мне бы хотелось что-то вроде этого:
<replaceicon from="app.exe" to="hello.exe" icon="hello.png"/>
Кто-нибудь знает, существует ли инструмент, соответствующий этим спецификациям?Из различных поисков в Интернете я обнаружил Launch4J , но, похоже, это просто разветвление windres для реальной работы, таким образом, нетривиально переносимое.Я нашел JSmooth , который выглядит более многообещающе - кажется, включает в себя Java-код для обработки кодека ICO и манипулирования PE-файлами - но это GPL. WinRun4J , похоже, использует собственный код для манипуляции с иконками, хотя мне было трудно следить за его исходниками. Jimi предположительно обрабатывает формат ICO (в этом отношении, похоже, стандарт javax.imageio
также кажется), но я думаю, что не имеет средств для обновления ресурсов PE.