2012-01-09 14 views
2

私はスタンドアロンのJavaプロジェクトを持っています。私はmavenのクリーンインストールを実行しました。コマンドプロンプトからtarget \ classesフォルダに移動し、必要なファイルをすべてclasspathに設定します。今私はメインクラスを実行します。結果が表示されます。JARのクラスパスを設定する

コマンドプロンプトでターゲットフォルダに戻り、jarファイル(jarファイルにメインクラスが定義されているマニフェストファイルがある)を実行しようとします。

Java -cp %CLASSPATH% -jar Destination-01.19-SNAPSHOT.jar 

以下の例外があります。上記の文からクラスパス属性を削除しましたが、同じ例外が発生しました。クラスパス変数に必要なクラスが設定されているため、-jar属性を使用せずにメインクラスを実行できました。スレッド "メインスレッド" java.lang.NoClassDefFoundErrorの中

例外:ORG/apacheの/コ モンス/ログ/たLogFactory

+1

私はクラスパスをMANIFESTファイルに入れる必要があると思います。 –

+0

[これも]をチェックしてください(http://stackoverflow.com/questions/1510071/maven-how-can-i-add-an-arbitrary-classpath-エントリー・トゥ・ザ・ジャー) –

+0

Noはありません。 'echo%CLASSPATH%'を表示して、LogFactoryクラスを含む** jar **ファイルがあるかどうか確認してください。 – OscarRyz

答えて

4

はこれが唯一のメカニズムでありますプログラムのクラスパスを設定します。

マニフェストのクラスパス行に必要なすべてのjarファイル(ローカルファイルシステムで見つける必要があることを意味する)を必要とするか、必要なjarファイルを見つけることができるカスタムクラスローダーを作成する必要があります。

4

それは-cpようで、互換性のない-jarです。あなたは自動的にクラスパスを更新するためにMavenをしたい場合はhttp://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

を参照してくださいマニフェスト

にクラスパスを配置する必要があり、以下を参照してください - あなたは-jarを使用する場合

http://maven.apache.org/shared/maven-archiver/examples/classpath.html

+0

ありがとうピーター! に1つの依存関係を設定しましたが、これはマニフェストのクラスパスに追加されません。 –

関連する問題