java

Compilar proyecto de Java con NetBeans y Maven (crear jar)

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:

Ejecutando proyecto de Java compilado en JAR con NetBeans y Maven

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

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

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

3 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

4 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Esta web usa cookies.