问题
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.
来源:https://stackoverflow.com/questions/6087876/how-to-run-java-class-file-inside-the-war-file