Tengo un programa que consta de dos archivos Java Swing simples.
¿Cómo hago un archivo JAR ejecutable para mi programa?
Tengo un programa que consta de dos archivos Java Swing simples.
¿Cómo hago un archivo JAR ejecutable para mi programa?
Respuestas:
Un archivo jar es simplemente un archivo que contiene una colección de archivos java. Para hacer que un archivo jar sea ejecutable, debe especificar dónde está la main
clase en el archivo jar. El código de ejemplo sería el siguiente.
public class JarExample {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
// your logic here
}
});
}
}
Compile sus clases. Para hacer un frasco, también necesita crear un archivo de manifiesto ( MANIFEST.MF
). Por ejemplo,
Manifest-Version: 1.0
Main-Class: JarExample
Coloque los archivos de clase de salida compilados (JarExample.class, JarExample $ 1.class) y el archivo de manifiesto en la misma carpeta. En el símbolo del sistema, vaya a la carpeta donde se colocaron sus archivos y cree el jar usando el comando jar. Por ejemplo (si nombra su archivo de manifiesto como jexample.mf)
jar cfm jarexample.jar jexample.mf *.class
Creará el ejecutable jarexample.jar.
jar cvfe jarexample.jar com.example.jar.JarExample *.class
En Eclipse puedes hacerlo simplemente de la siguiente manera:
Haga clic derecho en su proyecto Java y seleccione Exportar .
Seleccione Java -> Archivo JAR ejecutable -> Siguiente.
Seleccione la configuración de lanzamiento y elija el archivo de proyecto como su clase principal
Seleccione la carpeta de destino donde le gustaría guardarla y haga clic en Finalizar.
jar cvfe myjar.jar package.MainClass *.class
¿Dónde MainClass
está la clase con tu main
método y package
esMainClass
el paquete.
Tenga en cuenta que debe compilar sus .java
archivos en .class
archivos antes de hacer esto.
c create new archive
v generate verbose output on standard output
f specify archive file name
e specify application entry point for stand-alone application bundled into an executable jar file
Esta respuesta se inspiró en el comentario de Powerslave sobre otra respuesta.
Error: Could not find or load main class mtx.testClass Caused by: java.lang.ClassNotFoundException: mtx.testClass
testClass
definido en uno de sus .class
archivos? Asegúrese de haber compilado sus .java
archivos fuente ( ) antes de ejecutar este comando. Además, por lo general, su clase debería ser UpperCamelCase, puede intentar cambiarle el nombre a TestClass
.
Si usa maven, agregue lo siguiente a su archivo pom.xml :
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>com.path.to.YourMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Entonces puedes correr mvn package
. El archivo jar se ubicará en el directorio de destino .
Es demasiado tarde para responder a esta pregunta. Pero si alguien está buscando esta respuesta ahora, la he hecho para que se ejecute sin errores.
En primer lugar, asegúrese de descargar y agregar maven a la ruta . [ mvn --version
] le dará las especificaciones de la versión si lo ha agregado a la ruta correctamente.
Ahora, agregue el siguiente código al proyecto maven [ pom.xml
], en el siguiente código reemplácelo con su propio punto de entrada del archivo principal, por ejemplo, [ com.example.test.Test ].
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>
your_package_to_class_that_contains_main_file .MainFileName</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Ahora vaya a la línea de comando [ CMD
] en su proyecto y escriba mvn package
y generará un archivo jar como algo así como ProjectName-0.0.1-SNAPSHOT.jar
bajo target
directorio.
Ahora navegue hasta el directorio de destino por .cd target
Finalmente escriba java -jar jar-file-name.jar
y sí, esto debería funcionar correctamente si no tiene ningún error en su programa.