En el post de hoy vamos a ver cómo generar un JAR de tu proyecto de NetBeans si usas Maven como gestor de dependencias.
Al final tendrás un archivo que vas a poder distribuir y que ejecutará toda tu aplicación de Java.
Configurando clase principal
Recomiendo hacer los siguientes pasos solo si al ejecutar el jar encuentras el mismo error que yo. Si no, no es necesario y puedes saltar hasta el siguiente apartado.
Yo había creado una aplicación con Swing y configuré la clase principal como el JFrame. Eso funcionó bien para ejecutar el programa en el IDE, pero al compilar y ejecutar tuve problemas.
Había un error que decía:
no main manifest attribute, in mi archivo.jar
Entonces investigué que se debe agregar lo siguiente al pom.xml
:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>me.parzibyte.traductorswing.FramePrincipal</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
Solo cambia la mainClass
por tu mainClass
. En mi caso mi pom completo queda así:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>me.parzibyte.traductorswing</groupId>
<artifactId>TraductorSwing</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<exec.mainClass>me.parzibyte.traductorswing.FramePrincipal</exec.mainClass>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>me.parzibyte.traductorswing.FramePrincipal</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
Yo saqué el nombre de mi mainClass
de la línea 11.
Compilando jar con NetBeans
Una vez configurada la clase principal ya podemos compilar presionando F11 o yendo a Run > Clean and build project. Eso va a generar un archivo jar en la carpeta target
de nuestro proyecto.
Si te sirve de algo, en mi caso encontré el .jar en C:\Users\parzibyte\Documents\NetBeansProjects\TraductorSwing\target
, básicamente en NetBeansProjects de mis documentos.
Nota: una cosa es compilar el .java
a un .class
, ya que el jar simplemente empaqueta y todo eso. Lo digo para que no haya confusiones.
Ejecutar archivo de Java compilado
Después de eso ya podemos distribuir nuestro jar. Recuerda que para ejecutarlo necesitas el JRE o el JDK, y se abre dándole doble clic o alternativamente desde la terminal con:
java -jar nombre_de_tu_jar.jar
Por ejemplo, en mi caso es (aunque igual se abre con doble clic):
java -jar TraductorSwing-1.0-SNAPSHOT.jar
Y como es una app con Swing de un simple traductor aparece lo siguiente:
Con esto ya podemos compilar cualquiera de nuestros proyectos de Java que hacemos en el IDE NetBeans y enviarlos a nuestros clientes, amigos o quien sea.
Por aquí te dejo más tutoriales de Java.
Amigo muchisimas gracias, me funciono tu solución, extra a esto tambien realice lo siguiente, al contruir mi Jar lo hice con la opción de contruir con dependencias “Build with Dependencies”, esto debido a que estoy trabajando con el JDK 20.
saludos y de nuevo muchas gracias