2010-09-16 22 views
11

Tengo una aplicación Java y he creado un archivo JAR y lo he implementado.¿Cómo incluyo archivos JAR externos en mi propio proyecto JAR

La aplicación utiliza JAR externos como Log4J JAR. Al crear mi archivo JAR, ¿cómo incluyo todos los archivos JAR dependientes externos en mi archivo?

Para que mi aplicación funcione, tengo que copiar el Log4J JAR en el mismo directorio que mi JAR, lo que hace que el objetivo del jar no sea el mejor. ¿No sería más elegante tener 1 archivo JAR único para implementar?

+1

Muchas gracias a todos los que se tomaron su tiempo para responder. Voy a ver las opciones que tengo y tomar desde allí. Saludos John – Wilko

Respuesta

4

Puede usar algo como One-JAR para empaquetar su aplicación Java junto con su dependencia en un único archivo Jar ejecutable (One-JAR utiliza un cargador de clases personalizado para hacer posible la anidación de JAR).

2

Tienes que expandir los frascos de la biblioteca en el mismo lugar donde van tus clases compiladas, luego crea un frasco de eso. Dependiendo de cómo esté configurado su proceso de compilación, puede haber múltiples formas de lograr esto. No es ciencia ficción: un jar es solo un archivo zip con un directorio META-INF en el nivel raíz.

0

Un JAR no es capaz de anidar otros JAR, como descubriste.

Tradicionalmente, se distribuiría un archivo ZIP u otro instalador que desenrollaría el JAR de la aplicación (el suyo), así como cualquier archivo JAR de soporte en la ubicación adecuada para el acceso de la ruta de acceso de clase. Con frecuencia, entonces, la aplicación se invocaba a través de un script que invocaba el JAR primario y creaba un classpath que enumeraba los JAR de soporte.

Como han señalado otros carteles, tiene algunas opciones para crear un super-JAR si eso es lo que desea.

2

Mantener JAR por separado es mejor, ya que es fácil actualizar solo los JAR específicos a sus nuevas versiones sin tocar ninguna otra configuración. A partir de su problema de tener que copiar cada archivo en la misma ubicación que su JAR, siempre puede usar Java CLASSPATH e incluir cualquier JAR en la ruta de clase de su aplicación.

6

Si utiliza Eclipse, puede extraer todo su contenido en un frasco ejecutable como esto:

  1. Haga clic derecho sobre el nombre del proyecto desde el explorador de paquetes y seleccione Exportar.
  2. En la pantalla Exportar, seleccione Java -> Archivo JAR ejecutable y Siguiente.
  3. Complete la pantalla de especificación del archivo JAR ejecutable y finalice.

Puede elegir si desea empaquetar los archivos de dependencia como archivos jar individuales o extraerlos en el archivo JAR generado.

Cuestiones relacionadas