人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

他のjarファイルに依存しているJavaプログラムをmaven2で実行可能なjarファイルにまとめたいと思っています。dependencyタグの設定で依存性を指定してやることでmvn compileは成功するようになりました。しかしmvn packageでjarファイルを作っても実行時にクラス定義を見つけられずエラーになります。どうすればよいでしょうか?

●質問者: westfish
●カテゴリ:コンピュータ
✍キーワード:dependency JAR Java Maven2 エラー
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● F57PB
●20ポイント

まずは、「他のjarファイルに依存しているjarモジュールを実行するにはどうすれば良いか?」をご存知でしょうか?

ご存じなければ、Maven以前にそこを押さえるのが先だと思います。

(と言うか、アプリケーションの実行にMavenはあまり関係ないと思います)


要は依存する他のjarファイルをクラスパスに通せば良いわけですが、

クラスパスの設定方法にはいくつかの方法があります。

代表的な方法としては、以下の3つがすぐに思いつきます。

○CLASSPATH環境変数に追加する。

○実行時に、java -cpで指定する。

○JarファイルのマニフェストのClass-Pathで指定する。


これらの方法で、依存しているjarファイルをクラスパスに通せば動作するはずです。

◎質問者からの返答

長くなるので質問文には書きませんでしたが、以前はAntで作っていました。その時はzipfilesetタグを用いていました。maven2.0で同じことをする方法が知りたかったのですが、全く同じでなくとも目的が果たせればよかったのでこのような質問になりました。


2 ● ksaito11
●50ポイント

mvn package で作成したjarファイルにはdependencyタグで指定したjarファイル(以下、外部jarとします)は含まれません。

これらの外部jarは、実行時に環境変数のCLASSPATHで指定するかjavaコマンドの-classpathで指定する必要があります。

他には、jarファイルのマニフェストのにClass-Path:で相対パスで外部jarを指定することもできます。

http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/jar/jar.html#Man...

packageでwarファイルが作成される場合はdependencyのscopeにruntimeを指定するとwarファイルのWEB-INF/libに一緒にパッケージされます。

http://maven.apache.org/guides/introduction/introduction-to-depe...

◎質問者からの返答

ユーザーのことを考えるとなるべくインストールが簡単な物になることが好ましいので、以前はそれらのJarも含めて一つのJarにまとめていました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ