2011-05-22 30 views
8

Tengo un archivo war llamado Sample.war. en este archivo de guerra tengo la clase principal llamada "Maintest" .I quiero ejecutar o ejecutar la clase Maintest desde fuera de la guerra. Cómo hacer estoCómo ejecutar el archivo de la clase java dentro del archivo war

+0

¿por qué tienes Clase principal en la guerra .. que realmente necesita? guerra o jar? – Premraj

+0

http://stackoverflow.com/a/10021303/566092 –

Respuesta

4

Los archivos war son solo archivos Jar con metadatos adicionales. Por lo tanto, usted debe estar bien para hacer:

java -classpath application.war Maintest 

que cargará la clase Maintest del archivo de la guerra application.war y ejecutarlo

+2

Las clases en guerras se colocan en WEB-INF/classes. Su sugerencia no funcionará para estos. –

+0

http://stackoverflow.com/a/10021303/566092 - esto debería funcionar bien, parece que no lo han probado. –

-1

El punto de entrada de una guerra no es un principal método como es para una aplicación. El punto de entrada de una guerra sería el web.xml, que el servidor de aplicaciones lee y utiliza para asignar urls a servlets.

Si realmente necesita probar una guerra, podría usar un servidor de aplicaciones incrustado como Jetty.

1

Los archivos WAR están destinados para el despliegue de contenedores de servlets y no para la ejecución independiente.

Por lo tanto, no hay una manera fácil de hacer lo que desee. Utiliza los archivos ejecutables para la aplicación de método principal.

-1

A diferencia del archivo ejecutable jar no habrá un archivo ejecutable war y por qué ejecutar class dentro de war file. Las clases dentro de los archivos war son cargadas directa/indirectamente por el contenedor/servidor web. si realmente quieres ejecutar una clase dentro de un jar que está dentro del archivo war, entonces poner el jar en classpath se puede ejecutar como de costumbre.

2

misma respuesta que he publicado aquí: How do I run a class in a WAR from the command line?

Paso 1: Separar el archivo de Guerra.

jar -xvf MyWar.war 

Paso 2: entrar en el directorio

cd WEB-INF 

Paso 3: Ejecutar el principal con todos dependendecies

java -classpath "lib/*:classes/." my.packages.destination.FileToRun 
Cuestiones relacionadas