How to run java class file inside the war file [duplicate]

时间秒杀一切 提交于 2019-12-01 04:06:40

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

Bojan Petkovic

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

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.

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.

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.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!