How to run java class file inside the war file [du

2019-02-16 21:33发布

问题:

This question already has an answer here:

  • How do I run a class in a WAR from the command line? 9 answers

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

回答1:

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



回答2:

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


回答3:

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.



回答4:

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.



回答5:

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.



标签: java war