1

コマンドプロンプトからMaven 2に組み込まれたJavaアプリケーションを実行しようとしています

コマンドプロンプトで「mvn package」を実行し、アプリケーションのターゲットフォルダーにjarを取得しました

それから私はしました: -

java -cp ターゲット/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を入れてみました

4

2 に答える 2

1

クラスパス内のすべてのjarを使用して、mavenにアプリケーションを起動させることができます。を使用すると非常に簡単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
于 2012-08-24T07:11:27.320 に答える
0

次の 2 つのオプションがあります。

java -cp /path/to/jitidy.jar;target/TempestApp.jar TempestMainClass

また

java -cp /path/to/jitidy.jar -jar target/TempestApp.jar

MainClass が Manifest.mf に設定されている場合

マニフェスト.mf

... Main-Class: package.to.your.MainClass <- NEWLINE!!!

于 2012-08-24T09:06:37.000 に答える