2012-08-23 66 views
2

我試圖運行內置的Maven 2從命令提示符java.lang.NoClassDefFoundError:組織/ W3C /整齊/整潔,Maven項目

在命令提示符下的Java應用程序我做「MVN套裝」,並得到了罐子應用

隨後的目標文件夾中我所做的: -

java命令的目標/ 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罐子在CLASSPATH變量

+0

你有什麼樣的maven依賴代碼? –

回答

1

你可以讓行家在classpath中所有罐子啓動應用程序。 exec-maven-plugin相當簡單。當你想建立和執行相同的命令

<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 

如果你只是想運行應用程序:

添加到這個您pom.xml

mvn exec:java 
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

設置

... MainClass:package.to。 your.MainClass < - NEWLINE !!!

+0

@Sal-感謝第一種方法爲我工作:) – user1371033