如何在war文件中运行java类文件

我有一个名为Sample.war的war文件。 在这个war文件中,我有一个名为“Maintest”的主类。我想从战争的外面运行或执行Maintest类。如何做到这一点

战争文件只是具有额外元数据的Jar文件。 所以,你应该做得很好:

java -classpath application.war Maintest 

这将从war文件application.war加载类Maintest并运行它

我在这里发布的答案相同: 如何从命令行在WAR中运行一个类?

第1步:打开War文件。

 jar -xvf MyWar.war 

第2步:进入目录

 cd WEB-INF 

第3步:使用所有依赖项运行main

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

WAR文件用于servlet容器部署,而不用于独立执行。

因此,没有简单的方法可以做你想要的。 将可执行jar用于主方法应用程序。

战争的切入点不是像应用程序那样的主要方法。 战争的入口点是web.xml,它由应用程序服务器读取并用于将URL映射到servlet。

如果你真的需要测试战争,可以使用像Jetty这样的嵌入式应用服务器。

与可执行jar不同,不会有可执行的war文件以及为什么要在war文件中运行类。 war容器/服务器直接/间接加载war文件中的类。 如果真的想在war文件里面的jar中运行一个类,那么将jar放在classpath中就可以照常运行了。