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.
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.
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.
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.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.
Ver comentarios
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