我正在尝试从命令提示符
运行Maven 2中构建的java应用程序在命令提示符下,我执行了“mvn package”并将jar放在应用程序的目标文件夹中
然后我做了: -
java -cp target / TempestApp.jar foo.App
我得到例外: -
Exception in thread "main" java.lang.NoclassDefFoundError: org/w3c/tidy/Tidy
at foo.htmltoxml.HtmlToXMLConvertor(htmltoxml.java:29)
at foo.app.main(App.java:35)
该申请包括JTidy。在POM.xml中提到了谁的依赖性
应用程序在Eclipse中运行良好,但不能从命令提示符运行。
我甚至尝试将JTidy jar放在classpath变量
中答案 0 :(得分:1)
您可以让maven使用类路径中的所有jar启动您的应用程序。使用exec-maven-plugin
非常容易。
将此添加到您的pom.xml
:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.company.package.YourApplicationMain</mainClass>
</configuration>
</plugin>
</plugins>
</build>
然后当你想在同一个命令中构建和执行时:
mvn package exec:java
如果您只想运行该应用程序:
mvn exec:java
答案 1 :(得分:0)
有两种选择:
java -cp /path/to/jitidy.jar;target/TempestApp.jar TempestMainClass
或
java -cp /path/to/jitidy.jar -jar target/TempestApp.jar
如果MainClass在Manifest.mf中设置
MANIFEST.MF在
... Main-Class:package.to.your.MainClass&lt; - NEWLINE !!!