¿Por qué convertir CLASS a EXE?
El bytecode de la JVM es un conjunto de instrucciones independiente de la plataforma interpretado en tiempo de ejecución por la Java Virtual Machine. Un .exe de Windows contiene código de máquina nativo x86/x64 ejecutado directamente por la CPU. Estos son formatos fundamentalmente diferentes sin un conjunto de instrucciones compartido, lo que hace imposible la traducción mecánica a un ejecutable nativo.
Cómo convertir CLASS a EXE
jpackage (JDK 14+) FREE
Primero agrupe sus archivos .class en un JAR con jar cfe app.jar MainClass *.class, luego ejecute jpackage --input . --main-jar app.jar --name MyApp --type exe para crear un instalador de Windows que incluya un JRE privado.
Launch4j FREE
Agrupe sus clases en un JAR primero, luego use Launch4j para envolver el JAR en un ejecutable .exe ligero que localice un JRE instalado en tiempo de ejecución.
Acerca de estos formatos
Un archivo CLASS es bytecode de Java compilado: el resultado que produce javac a partir de un archivo fuente .java. Para ejecutarlo necesitas tener instalado Java (un JDK), y luego usar el…
Abrir detalles de .CLASS →Un archivo EXE es un programa ejecutable de Windows. En Windows, haga doble clic para ejecutarlo. En Mac o Linux, use CrossOver o Wine - los EXE no se ejecutan de forma nativa fuera de…
Abrir detalles de .EXE →Calidad y qué observar
- En todos los enfoques prácticos, Java sigue ejecutándose por debajo:
jpackageincluye un JRE privado, Launch4j requiere que haya uno instalado; la JVM no es opcional para el bytecode de Java. - Los sitios que afirman convertir archivos
.classarbitrarios en un.exegenuino y autónomo son engañosos; no existe tal herramienta. - Para inspeccionar o recuperar el código fuente de un
.class, use JD-GUI o CFR para descompilar de nuevo a.java.
Preguntas frecuentes
«¿Puedo renombrar un archivo .class a .exe y ejecutarlo?»
.class comienza con los magic bytes de Java CA FE BA BE, no con un encabezado PE válido.«¿Qué produce realmente jpackage?»
«¿Puedo envolver un solo archivo .class sin un proyecto completo?»
public static void main; las clases de biblioteca y fragmentos necesitan que todas las dependencias se agrupen primero en un JAR.