Existen algunas herramientas ( Excelsior JET , etc.) que afirman transformar las aplicaciones Java en ejecutables nativos ( *.exe
). Sin embargo, entiendo que estas herramientas realmente solo están creando envoltorios nativos que invocan / ejecutan java
desde un shell o línea de comandos.
Si esa comprensión es incorrecta, no veo cómo podría ser. Si un JVM ( java
proceso) en ejecución es esencialmente un intérprete de alto rendimiento, cargando bytecode de archivos de clase Java sobre la marcha, entonces no veo cómo una aplicación Java (una colección de archivos de bytecode que sirven como entrada a una JVM) podría ser verdaderamente convertido en un ejecutable.
Esto se debe a que el proceso JVM ya es un ejecutable nativo que toma conjuntos de archivos de bytecode como entrada. No parece posible fusionar esos archivos de bytecode y el proceso JVM en un único ejecutable nativo unificado sin reescribir por completo la JVM y desviarse de la especificación JVM.
Entonces pregunto: ¿cómo estas herramientas "transforman" realmente los archivos de clase Java en un ejecutable nativo, o no?