ちょっと、私はコマンドラインから実行可能なjarとして実行できるようにしたいプロジェクトに取り組んできました。私は、Mavensアセンブリを使用して依存関係を持つjarファイルを作成することができました。私のポンはこのように見える。依存関係を持つ実行可能なjarを実行する際の問題
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<archive>
<manifest>
<mainClass>org.openmetadata.main.OmadUpdate</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
ビルドが成功するとjar omad更新-0.0.1-SNAPSHOT-ジャーと-dependencies.jarを作成します。私は、コマンドラインで私のプロジェクトのターゲットフォルダに移動し、私も残念ながら、私はjava.lang.NoClassDefFoundErrorが与えられていますそれぞれの場合に
java -cp omad-update-0.0.1-SNAPSHOT-jar-with-dependencies.jar org.openmetadata.main.OmadUpdate
を試してみました
java -jar omad-update-0.0.1-SNAPSHOT-jar-with-dependencies.jar
タイプ:ORG/openmetadata /メイン/ OmadUpdate。メインクラスがorg.openmetadata.mainパッケージに含まれていることがわかっているのに混乱していますが、まだ見つかりません。私はこのクラスを私のメインクラスとして指定しているので、これは特に混乱しています。私はメインクラスの名前をsrc.main.java.org.openmetadata.main.OmadUpdateに変更しようとしましたが、単にOmadUpdateも同様に効果があるようです。事前に助けてくれてありがとう。
しかし、このページの[リンク](http://maven.apache.org/plugins/maven-assembly-plugin/usage.html#aResources)によると、クラスパスを指定する必要はないようです必要に応じて依存関係をパッケージ化します。私はそれを前提とした間違いをしていると思う。 – decal
jarファイルを開き、META-INFディレクトリのMANIFEST.MFファイルを探します。クラスパスは指定されていますか? – Mike
申し訳ありませんでしたので、Mavens [ウェブサイト](http://maven.apache.org/shared/maven-archiver/examples/classpath.html#aMake)でpom.xmlに true addClasspath>を追加しましたクラスパスを処理する必要がありますが、実行可能なjarを実行しようとするとMainクラスが見つからないという問題がまだ発生しています。 –
decal