8

i am having war file called Sample.war. in this war file i have the main class called "Maintest" .i want to run or execute the Maintest class from out side the war .how to do this

ssbecse
  • 1,895
  • 3
  • 13
  • 7

5 Answers5

4

same answer as I posted here: How do I run a class in a WAR from the command line?

Step 1: Unwrap the War file.

jar -xvf MyWar.war

Step 2: move into the directory

cd WEB-INF

Step 3: Run your main with all dependendecies

java -classpath "lib/*:classes/." my.packages.destination.FileToRun
Community
  • 1
  • 1
Bojan Petkovic
  • 2,406
  • 15
  • 26
4

War files are just Jar files with extra metadata. So, you should be fine to do:

java -classpath application.war Maintest

That will load the class Maintest from the war file application.war and run it

Gagravarr
  • 47,320
  • 10
  • 111
  • 156
1

WAR files are intended for servlet container deployment and not for stand-alone execution.

Hence, there is no easy way to do what you want. Use executable jars for main-method application.

Thorbjørn Ravn Andersen
  • 73,784
  • 33
  • 194
  • 347
0

The entry point of a war is not a main method like it is for an application. The entry point of a war would be the web.xml, which is read by the application server and used to map urls to servlets.

If you really need to test a war, you could use an embedded application server like Jetty.

James Scriven
  • 7,784
  • 1
  • 32
  • 36
-1

Unlike executable jar there won't be executable war file and why to run class inside war file. Classes inside war files are directly/indirectly loaded by web container/server. if really want to run a class inside a jar which is inside war file, then putting the jar in classpath it can be run as usual.