2009-02-24 14 views
5

He escrito un programa en Eclipse IDE que utiliza la clase BouncyProvider de BouncyCastle.jar. Entonces, para compilar mi clase agregué BouncyCastle.jar en mi clase de proyecto y compila perfectamente.cómo excluir un contenedor externo mientras se crea el archivo jar ejecutable en eclipse o línea de comando?

Ahora quiero exportar mi proyecto como JAR ejecutable, así que cuando hago eso desde Eclipse, de forma predeterminada agrega las clases de BouncyCastle.jar también en ese jar ejecutable.

Pero quiero mantener mi aplicación jar y BouncyCastle.jar diferentes unos de otros.

¿Cómo puedo lograr esto? ¿Alguien puede ayudarme?

Respuesta

1

Desafortunadamente, parece que en realidad no se puede hacer eso. Un JAR no puede usar otro JAR que está almacenado dentro de sí mismo.

diría que, a menos que tenga una muy buena razón por la cual no puede desempaquetar su BouncyCastle.jar (como problemas de licencias tal vez?)

sólo deja que desempaquetar (que se puede hacer mediante la adición de BouncyCastle .jar como un archivo externo en Eclipse :)

Right-click on your project 
Build Path... 
Add External Archives... 
Add your archive 
Export as runnable JAR) 

y mire los nombres de los paquetes para los conflictos.

Here's an open Java bug ID I found describing your situation

One-JAR may help - a open source solution to your situation

+0

Uno asumiría el PO quiere tener dos frascos separados, con el tarro de solicitudes relativas a la jarra BouncyCastle por medio de la directiva classpath en el manifiesto. –

3

Parece que usted quiere utilizar la opción "Exportar archivo JAR" asistente en lugar del asistente "Exportar JAR Ejecutable Archivo". Al exportar un archivo jar ejecutable, Eclipse intenta empaquetar todo lo necesario para ejecutar la aplicación en un solo archivo. Por otro lado, el asistente "Exportar archivo JAR" le brinda más control sobre lo que está empaquetado en el archivo. Aún puede crear un archivo jar ejecutable, pero debe asegurarse de incluir BouncyCastle.jar en el classpath al ejecutar el jar. Aquí hay instrucciones paso a paso:

  1. Haga clic en "Archivo | Exportar". Aparece el cuadro de diálogo Exportar .
  2. Expanda la carpeta "Java" y seleccione "archivo JAR" (no "archivo JAR ejecutable "). Haga clic en Siguiente. En la página de especificaciones del archivo JAR , elija las clases que desee incluir en el archivo jar y especifique el nombre del archivo JAR que va a crear. Haga clic en Siguiente.
  3. En la página Opciones de empaque de JAR, seleccione las opciones adecuadas para usted. Los valores predeterminados probablemente sean correctos. Haga clic en Siguiente.
  4. En la especificación del manifiesto JAR, asegúrese de seleccionar la "Clase principal" para su archivo jar. Esta es la clase que se ejecutará cuando ejecute el archivo jar. Si lo deja en blanco, el archivo jar será no ejecutable. Haga clic en Finalizar en para crear el archivo jar.

Usted debe ser capaz de ejecutar el archivo jar ejecutando "java-jar myjarfile.jar -classpath BouncyCastle.jar" de una línea de comandos.

0

Parece que este ha sido añadido en Eclipse 3.5 Milestone 5. Ver la News para la versión más reciente y bug 219530

Cuestiones relacionadas