Ejecutar jar creado desde netbeans

Creando el jar desde netbeans

Cuando creamos un proyecto netbeans, es muy común generar el ejecutable jar desde acá mismo. Para generar un jar de una aplicación sencilla solo le das:

clic derecho sobre el proyecto -> Clean and Build

La anterio opción crea un directorio llamado dist en la caperta raíz de tu proyecto. Quedando de la siguiente manera:

/proyecto/dist
/proyecto/src/
/proyecto/nbproject
/proyecto/build

Dentro del carpeta dist se encuentra el archivo jar del proyecto. Hasta acá no debería haber ningún problema con el jar ya generado.

Mi proyecto necesita librerías para funcionar, cómo hago que funcione mi jar con estas librerías?

Tienes un proyecto creado desde netbeans, en tu proyecto tienes agregado el conector de MySQL para conectar tu aplicación con una base de datos de MySQL, has agregado la librería o conector haciendo clic derecho sobre libraries -> add libraries . Dentro de la carpeta de libraries de netbeans puedes ver que se agregó la librería exitosamente. Luego creo mi jar, lo ejecuto y… no funciona!

Una razón por la cual sucede esto es porque de alguna forma, netbeans asigna los path de diferente forma a como los confirguro el proyecto.
Aún así, mucha gente desconoce que netbeans en estos casos crea una estructura para evitar estos problemas…

…Ya agregadas las librerías que vayas a ocupar en el proyecto vuelves a generar el jar, pero esta vez se va a crear una carpeta nueva, quedando la siguiente estructura:

/proyecto/dist/
/proyecto/dist/lib/

Dentro de la carpeta dist se encuentra el jar recién generadoy dentro de la carpeta lib se encuentran todas las librerías que has agregado a tu proyecto. Es importante para el buen funcionamiento del jar que tambien muevas esta carpeta donde quieras poner el jar, por ejemplo, si mueves el jar otra pc hayq eu recordar que la estructura debe de quedar asi:

/mi-archivo-jar.jar
/lib/conectoX.jar
/lib/conectorY.jar
/lib/conectorZ.jar

Nota: para ejecutar un jar desde consola se realiza de la siguiente manera:

java -jar mi-archivo-jar.jar

15 comments

  1. richarparrao

    excelente!. Muchas Gracias

  2. richarparrao

    excelente!. Muchas Gracias.

  3. Oie pero esto tambien cargas o creas tus tablas(mysql) para que las puedas manipular desde el .jar

    me entiendes crear junto con el .jar las tablas para realizar cualquier operacion…??

  4. hola amigo cuando creo el ejecutable no se crea la carpeta lib pero ya tengo todas las libreria de mysql too
    pero no se crea la carpeta lib cuando paso clean and build
    no se si tu me puedesa ayudar

    gracias

  5. una pregunta ..si yo tengo en mi base de datos del propio netbeans creadas unas tablas y en mi proyecto tengo un Jframe utilizando esas tablas .. cuando yo quiera abrir mi proyecto en otra pc lo abrira..? , y si no es asi como hago para q esas tablas puedan ser transportadas a otra pc

    espero sus respuestas… gracias.

  6. Disculpa yo intente ejecutarlo y me aparece:

    Exception iun thread “main” java.lang NullPoniterException at javax.swing.ImageIcon…..

  7. yo tengo un proyecto en netbeans necesito ejecutar desde consola me podrías ayudar obviamente con el javac no funciona y no entiendo muy bien lo del ANT y el PATH

  8. no va pendeja

  9. chevere, gracias esta excelente esto…

  10. buenissimo, pero como podere invocar el jar dento de un proyecto en netbeans, gracias

  11. sebas 8a

    GRACIAS HERMANO..D MUCHA AYUDA

  12. Puede ser ello pero en ocasiones el jdk influye mucho para la ejecución de las aplicaciones, me paso que tenia una aplicación trabajando en netbeans con JDK 7, y cuando creaba el .jar con Shift+f11 todo normal pero cuando lo ejecutaba me aparecia error de que la clase principal no se encuentra, lo que hice fue irme a netbeans click derecho en propiedades del proyecto en Sources cambie en la parte inferior en la lista desplegable donde aparecia Source/Bynary Format el JDK 7 a JDK6 y click en “Ok”, compile de nuevo con shift+f11 el proyecto y lo ejecute desde el .jar y funciono a la maravilla. Saludos.

    • Que extraño! Pero ya le habías asignado la clase principal en las propiedades o en el manifest?

Leave a Reply