Reemplazar icono en Windows * .exe desde código Java independiente de plataforma de código abierto

En primer lugar, este no es un duplicado de la pregunta muy común de hacer un EXE a partir de clases Java. No necesito hacer eso.

Para resolver NetBeansRFE # 64612 sin pasos manuales Necesito una biblioteca Java (6+) que pueda tomar unaexistent Windows*.exe file y reemplace su icono con un sustituto en un formato común. El ejecutable, que es genérico y preconstruido (distribuido en forma binaria), ya sabe cómo cargar un archivo de configuración específico de la aplicación y luego iniciar el JRE con varios JAR de aplicación, etc .; el único problema es que tiene un ícono genérico, y me gustaría reemplazar ese ícono como parte de una compilación de Java pura con un ícono específico de la aplicación, por lo que se ve más bonito.

La biblioteca debe estar disponible bajo una licencia de código abierto no viral; multiplataforma (debe ejecutarse en Windows, Linux, Mac, Solaris) para que no pueda bifurcar alguna herramienta auxiliar específica del sistema operativo; y debe aceptar la entrada PNG, aunque el EXE debe funcionar en XP, por lo quesegún Wikipedia debería incrustar el formato BMP. En un nivel alto, suponiendo que Ant sea una herramienta de compilación, me gustaría algo como esto:

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

¿Alguien sabe si ya existe una herramienta que coincida con estas especificaciones? De varias búsquedas web encontré Launch4J, pero esto parece simplemente bifurcar windres para el trabajo real, por lo tanto, no es trivialmente portátil. Encontré JSmooth, que parece más prometedor, parece incluir código Java para manejar el códec ICO y manipular archivos PE, pero es GPL. @ WinRun4J parece utilizar código nativo para la manipulación de iconos, aunque tuve dificultades para seguir sus fuentes. @ Jimi supuestamente maneja el formato ICO (para el caso, el estándarjavax.imageio parece que también), pero supongo que no tiene facilidad para actualizar los recursos de educación física.

Respuestas a la pregunta(8)

Su respuesta a la pregunta