Eclipse: ¿Cómo construir un jar ejecutable con jar externo?

Estoy intentando construir un progtwig jar ejecutable que depende de un jar externo descargado. En mi proyecto, los incluí en la ruta de comstackción y puedo ejecutarlos y depurarlos dentro de Eclipse.

Cuando traté de exportarlo a un contenedor, puedo ejecutar el progtwig, pero no puedo cuando bash presionar un botón que incluye llamadas a funciones y clases desde el contenedor externo. He editado las variables de entorno (Windows XP) CLASSPATH para incluir rutas de todos los jar externos, pero no funciona.

Un punto a tener en cuenta es que obtuve advertencias de comstackción al exportar mi jar ejecutable, pero no aparece ninguna descripción sobre las advertencias.

¿Alguien amablemente proporcionaría una guía completa sobre cómo incluir un progtwig jar externo usando eclipse?

Eclipse 3.5 tiene una opción para empaquetar las bibliotecas requeridas en el jar ejecutable. Archivo -> Exportar … Elija un archivo ejecutable y haga clic en siguiente. La ventana de exportación del jar ejecutable tiene un botón de opción donde puede elegir empaquetar las bibliotecas requeridas en el contenedor.

Puedes hacer esto escribiendo un manifiesto para tu jar . Eche un vistazo al encabezado Class-Path . Eclipse tiene una opción para elegir su propio manifiesto en la exportación.

La alternativa es agregar la dependencia al classpath en el momento de invocar la aplicación:

win32: java.exe -cp app.jar;dependency.jar foo.MyMainClass *nix: java -cp app.jar:dependency.jar foo.MyMainClass 

Cómo incluir los flasks de tu proyecto en tu jar ejecutable:

Estoy usando la versión de Eclipse: 3.7.2 ejecutándose en Ubuntu 12.10. También le mostraré cómo crear el build.xml para que pueda hacer el ant jar desde la línea de comando y crear su jar con otros jar importados extraídos en él.

Básicamente le pides a Eclipse que construya build.xml que importe tus bibliotecas en tu jar por ti.

  1. Arranca Eclipse y crea un nuevo proyecto Java, crea un nuevo paquete ‘mypackage’, agrega tu clase principal: Runner Introduce este código allí.

    enter image description here

  2. Ahora incluye el mysql-connector-java-5.1.28-bin.jar de Oracle que nos permite escribir Java para conectarnos a la base de datos MySQL. Haga esto haciendo clic derecho en el proyecto -> propiedades -> ruta de comstackción java -> Agregar jar externo -> elija mysql-connector-java-5.1.28-bin.jar.

  3. Ejecute el progtwig dentro de eclipse, debería ejecutarse, y le dirá que el nombre de usuario / contraseña no es válido, lo que significa que Eclipse está configurado correctamente con el jar.

  4. En Eclipse, vaya a File -> Export -> Java -> Runnable Jar File . Verás este diálogo:

    enter image description here

    Asegúrese de configurar la checkbox ‘guardar como ant script’. Eso es lo que lo hace para que pueda usar la línea de comandos para hacer un ant jar más tarde.

  5. Luego ve a la terminal y mira el script de la ant:

    enter image description here

Como puede ver, ejecuté el archivo jar y no se equivocó porque encontró el mysql-connector-java-5.1.28-bin.jar incluido dentro de Hello.jar .

Mira dentro de Hello.jar: vi Hello.jar y verás muchas referencias a com/mysql/jdbc/stuff.class

Para hacer ant jar en la línea de comandos para hacer todo esto automáticamente: Cambie el nombre de buildant.xml a build.xml y cambie el nombre de destino de create_run_jar a jar .

Luego, desde MyProject , escribe ant jar y boom. Tienes tu jar dentro de MyProject. Y puedes invocarlo usando java -jar Hello.jar y todo funciona.

Como buena práctica, puede usar un Ant Script (Eclipse viene con él) para generar su archivo JAR. Dentro de este JAR puedes tener todas las librerías dependientes.

Incluso puede configurar el encabezado de ruta de clase MANIFEST para apuntar a los archivos en su sistema de archivos, aunque no es una buena práctica.

Ejemplo de script Ant build.xml:

                                 

Prueba la extensión de flask gordo. Incluirá todos los flasks externos dentro del flask.

look @ java-jar-ignores-classpath-Workaround