【发布时间】:2014-10-12 07:49:24
【问题描述】:
我有一个 Maven Web 应用程序,它在 Source Packages 文件夹中只包含一个类。我已经从这个项目中获得了战争文件,我想复制它并在另一台机器上运行。我希望能够使用命令行仅运行该特定类。
我仍然想使用war文件的原因是因为该类实现了一个RESTful服务,所以我不知道是否还有其他方法可以走(比如把它做成一个jar并在那里结束)。我的 war 文件还包含几个依赖项,其中一个具有提供的范围:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
这是从 pom.xml 文件中提取的,并且是唯一没有出现在 WEB-INF/lib 文件夹中的依赖项。不过不知道是不是这个问题。
我的班级名为ClientSide,位于client 包下。运行命令:
java -cp warFileName.war client.ClientSide
导致这个错误:
Error: Could not find or load main class client.ClientSide
将Main-Class: client.ClientSide 添加到清单文件并没有改变任何东西。我已经尝试过这里提出的解决方案:How do I run a class in a WAR from the command line? 但没有运气。这个错误会不断重复。
我可以运行该类的唯一方法是右键单击 Web 应用程序中的类并从 netbeans 中选择 Run File,这很烦人。
【问题讨论】: