2009-07-27 9 views
8

Tengo dos guerras, foo.war y bar.war. foo usa clases desde la barra. Estoy intentando iniciar foo y agregar a classpath bar.war de Java, pero java arroja una ClassNotFoundException.Adición de WAR a la classpath de Java

Si cambio el nombre de bar.war a bar.jar y edito su estructura de directorios para que parezca un jar, funciona.

la documentación de Java en el interruptor -CP no menciona los archivos de guerra:

-classpath <class search path of directories and zip/jar files> 
       A ; separated list of directories, JAR archives, 
       and ZIP archives to search for class files. 
+0

Tengo un problema similar a esto: tengo docenas de jarras y docenas de archivos de configuración que se ven envueltos en una guerra y me gustaría poder ejecutar un guión maravilloso usando eso como mi "Classpath" y tenerlo todo solo trabajo. Siempre hay alternativas, pero esta habría sido la forma más flexible y me habría ahorrado días de trabajo posiblemente ... Bueno, a la siguiente solución. +1 para la pregunta de todos modos, me salvó un poco de tiempo. –

Respuesta

15

Los archivos WAR están destinados a ser aplicaciones web completas, no bibliotecas. Ellos contienen bibliotecas, pero en sí mismos son aplicaciones.

Una aplicación web no debe depender de otra aplicación. Pueden depender de las mismas bibliotecas, pero no el uno del otro.

Extraiga básicamente la funcionalidad común, conviértala en una biblioteca (como un archivo jar) e incluya ese archivo jar en ambos archivos WAR o agréguelo a una parte común de la ruta de clase.

+0

Está tratando de evitar todavía otro proyecto en nuestra creciente lista de proyectos. Oh bien. – ripper234

0

La estructura de un archivo de la guerra es muy diferente a un frasco por lo que no funciona. Los archivos de la clase Java se guardan en el directorio de clases del WAR, mientras que Jar tiene directamente los archivos de la clase Java. ¿Por qué no agrega la carpeta donde tiene los archivos de la clase Java de bar.war?

¿Qué estás tratando de lograr?

Cuestiones relacionadas