実行可能なjar

| コメント(0) | トラックバック(0)

jarファイルをダブルクリックするだけでJavaアプリケーションを起動させるための方法。

必要な物はjarファイル内にMETA-INF/MANIFEST.MFというファイルを用意するだけ。
例えばこんな感じ。

Manifest-Version: 1.0
Main-class: tv.kazu.sample.jar.AppMain

あとはjarファイルをダブルクリックすればAppMainが実行される。

基本的な情報はきしださんのこのページとかを参考に。

さて、Javaで開発をしててclasspath関係で一度も悩んだこと無い人はいないと思う。

では上記のAppMainが他のjarファイル(以下外部jarファイルと呼ぶ)に依存しているとする。JDBCドライバーだったりLog4jだったり。その場合にはどういう解決方法があるだろうか。

結論から言うと3つ

  1. Manifest.cfにclasspathを相対パスで記述し、外部jarファイルを先ほど作成した実行可能なjarファイルからの正しい相対パスの場所に置く
  2. 外部jarファイルを解凍して、外部jarファイルに含まれていたclassファイルを実行可能jarファイルに含める
  3. lib/extディレクトリに外部jarファイルを入れる

オススメは1番かなぁ。自作の実行可能jarファイルとライブラリ等の外部jarファイルをユーザーを一つのディレクトリに入れて、そのディレクトリをまとめてユーザーに配布。

ここの675に書いてあるように、実行可能jarファイルの中に外部jarファイルを(classファイルに解凍せずに)そのまま含めて、それを参照させることはできないっぽい。

Java House MLにもこれに関係する投稿が。

しかし、結論に辿り着くまでに結構時間がかかった。Googleで検索してる時に、自分以外にも悪戦苦闘してる人が結構いたので(この人とか)、まとめてみた。

トラックバック(0)

トラックバックURL: http://www.kazu.tv/blog-mgr/mt-tb.cgi/651

コメントする

このブログの作者

名前:kazu
仕事:IT関係の何でも屋
メール:kazu 後幕 kazu どと tv
詳しくはこの辺

このブログ記事について

このページは、kazuが2007年11月22日 13:22に書いたブログ記事です。

ひとつ前のブログ記事は「setSchemaで例外」です。

次のブログ記事は「FlexとFlashを連係」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ