外部ライブラリ(org.vinay.dep.DependedClassというクラスファイルが1つだけ)があります。これはパッケージディレクトリ構造内にあり、ディレクトリorgはデスクトップ上にあります。
そして、外部ライブラリに依存するa.jarというjarがあります。
実行jar -tf a.jar
すると、以下の出力が得られます。
META-INF/
META-INF/MANIFEST.MF
com/
com/os/
com/os/hw/
com/os/hw/HelloWorld.class
com/os/hw/HwUtil.class
私は2つの方法でjarを実行しようとしました
java -classpath C:/Users/vinay/Desktop -jar a.jar
マニフェスト.mfエントリがマニフェスト-バージョン:1.0
作成者:1.6.0_05(Sun Microsystems Inc.)
メインクラス:com.os.hw.HelloWorldDependedClassのNoClassDefFoundErrorを取得しました
java -jar a.jar
マニフェストエントリを以下のように変更した後マニフェスト-バージョン:1.0
作成者:1.6.0_05(Sun Microsystems Inc.)
メインクラス:com.os.hw.HelloWorld
クラスパス:C:/ Users / vinay / Desktopただし、今回はHelloWorld クラス自体にNoClassDefFoundErrorがスローされました
外部ライブラリをjarにパッケージ化し、マニフェストファイルのクラスパスエントリにjar名を使用すると、機能します。外部ライブラリをjarにパッケージ化せずに、この問題を解決する方法はありますか?