Substituindo o ícone no Windows * .exe do código Java independente da plataforma de código aberto

Primeiro de tudo, isso não é uma duplicata da questão muito comum de criar um EXE a partir de classes Java. Não preciso fazer isso.

Para resolver o NetBeansRFE # 64612 semmanual steps Eu preciso de uma biblioteca Java (6+) que possa levar umexisti Janelas*.exe e substitua seu ícone por um substituto em um formato comum. O executável, que é genérico e pré-construído (distribuído em formato binário), já sabe como carregar um arquivo de configuração específico do aplicativo e, em seguida, iniciar o JRE com vários JARs do aplicativo, etc .; o único problema é que ele possui um ícone genérico e gostaria de substituí-lo como parte de uma compilação Java pura por um ícone específico do aplicativo, para que fique mais bonit

A biblioteca deve estar disponível sob uma licença de código aberto não viral; multiplataforma (deve ser executada no Windows, Linux, Mac, Solaris); portanto, não é possível bifurcar alguma ferramenta auxiliar específica do SO; e deve aceitar a entrada PNG, embora o EXE deva funcionar no XP, entãode acordo com a Wikipedia deve incorporar o formato BMP. Em um nível alto, supondo que o Ant seja uma ferramenta de construção, eu gostaria de algo assim:

<replaceicon from="app.exe" to="hello.exe" icon="hello.png"/>

Alguém sabe se já existe uma ferramenta que atenda a essas especificações? Em várias pesquisas na web, encontrei Launch4J, mas isso parece apenas bifurcar windres pelo trabalho real, portanto, não é trivialmente portátil. Eu encontrei JSmooth, que parece mais promissor - parece incluir código Java para manipular o codec ICO e manipular arquivos PE - mas é GPL. WinRun4J parece usar código nativo para manipulação de ícones, embora eu tenha tido dificuldade em seguir suas fontes. Jimi supostamente lida com o formato ICO (nesse caso, o padrãojavax.imageio parece também), mas acho que não há facilidade para atualizar os recursos do P

questionAnswers(4)

yourAnswerToTheQuestion