0

実行可能な JAVA プログラムを作成しようとしています。このプログラムのソースには、ソース フォルダーにさまざまなパッケージが含まれています。以下の pom.xml ファイルに mainClass 属性を設定し、「パッケージ」を目標として Maven ビルドとして実行すると、myapplication.jar が作成されます。を使用して開こうとすると

java -jar myapplication.jar

メッセージが表示されます:

'メイン クラスが見つかりませんでした: xxx.yyy.MainClass. プログラムは終了します。

以下は、私の pom.xml ファイルからの抜粋です。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
      <archive>
        <manifest>
          <addClasspath>true</addClasspath>
          <mainClass>xxx.yyy.MainClass</mainClass>
        </manifest>
      </archive>
    </configuration>
    <executions>
        <execution>
            <id>make-a-jar</id>
            <phase>compile</phase>
            <goals>
              <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

MainClass.java 内 (パッケージ xxx.yyy 内) には次のものがあります。

public static void main(String[] args) {
  // My Code
}

JAR ファイルを解凍し、META-INF フォルダー内の MANIFEST.MF ファイルを見ると、次の行が含まれています。

Main-Class: xxx.yyy.MainClass
Class-Path: aaa.jar bbb.jar ccc.jar

ここで、aaa.jar、bbb.jar、および ccc.jar は、プロジェクトがそれらに依存しているため、Maven が自動的にダウンロードした jar ファイルです。どちらの行も必ず改行で終わります。

また、解凍された JAR xxx/yyy/MainClass.class に関連するフォルダーを参照すると、そこにあります。

ご協力いただきありがとうございます。

4

2 に答える 2

0

あなたの要件でmavenプロジェクトを作成しました。これはうまくいっています。

ご参考までにこちらにアップしました。https://www.dropbox.com/s/1yuy9nfdj7mz4ec/testPackage.zip

これはうまくいきます。私が使用していることに注意してくださいmaven-2.0.9

于 2012-11-20T12:15:35.627 に答える
0

エラーメッセージが適合しないため、これがこの問題の原因であるかどうかはわかりませんが、jar オプションのドキュメントには次のように記載されていることに注意してください。

このオプションを使用すると、JAR ファイルがすべてのユーザー クラスのソースとなり、他のユーザー クラス パス設定は無視されます。

だから私はそれを疑う

Class-Path: aaa.jar bbb.jar ccc.jar

動作します。

于 2012-11-20T11:42:17.177 に答える