skillup

技術ブログ

Java

mavenでのjarファイル作成

投稿日:

ここ半年Javaを触っていますが、9割以上がWEBアプリでバッチ系のものを作る機会から外れていました。

今回バッチを作っており、IDEでは動くのにいざコンソールで動かそうと思ったら動かないということがあったのでメモしておきます。

IDEの弊害

Javaで開発をするプログラマの99%以上はEclipseかNetbeansのIDEを使っていると思います。

IDEの弊害としてコーディングをする際の様々なサポートがあるため、プログラマがその機能に頼ってしまい、基本的な操作を覚えなくなってしまうということが挙げられます。

まあ、プログラマが悪いのであってIDEが悪いわけではないのですが(汗)

jarファイルを作るには

今回ビルドしたjarファイルを動かそうと思ったらXXXXXX.jarにメイン・マニフェスト属性がありません

と怒られてしまいました。

どうやらjarファイルを作成するにはバージョンや実行ファイル、依存ライブラリなどを定義するマニフェストファイルというものが必要なようです。

マニフェストファイルについて

https://docs.oracle.com/javase/jp/1.5.0/guide/jar/jar.html

マニフェストファイルの定義の仕方

このようなマニフェストファイルの作り方ですが、pomに以下のように記述すればOKです。

上記の記述の細かい説明などは下記へ

http://kokuzawa.blogspot.jp/2011/05/netbeansmaven.html

http://terakonya.sarm.net/wordpress/2012/02/02/maven_build_assembly/

依存ライブラリエラー

上記を記述したにも関わらず使っているライブラリがインポートされていない、NoClassDefFoundErrorがでてしまいました。

どうやらjarのなかに依存ライブラリをインポートするような記述が必要なようです。

下記のように記述すれば解決します。

https://www.ibm.com/developerworks/jp/java/library/j-5things13/

http://qiita.com/pcpDev/items/ca3a7a7e518d68344f00

これでようやく動きました。

↑上記のように記述しても同階層にlibディレクトリがなければ動きません。

単独で動かすには下記のエントリーを参考にしてください。

依存ライブラリを含むプログラムのjar化に関して

おまけ jarファイルコマンドなど

http://msugai.fc2web.com/java/jar.html

-Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Javaでのコーディングで気を付けること

会社でSoftWareDesignを定期購読しており、Javaのコーディングで気をつけることなどがあったので、ちょっとチェック。 以前も似たようなエントリーは書いたことがあったのだけど、再確認。メモ書 …

no image

Enumでメソッドの実装

以前、Enum式で値を定義したことはありましたが、なんとメソッドが実装できることを知りました。 Contents1 Enumでのメソッドを実装2 複雑なメソッドの実装 Enumでのメソッドを実装 op …

no image

try-with-resourceの使い方

先日ファイル入出力の処理をいろいろと書いていたところ、例外処理について社長からアドバイスをいただきました。 Contents1 ファイルの入出力について2 try-with-resource3 参考リ …

no image

StreamのMap処理

Javaのstreamですが知れば知るほどいろいろな機能がありますね。 基本的にプログラムって配列(コレクション含む)とオブジェクトの処理が中心になるので、配列の処理をいかにうまくできるかは非常に大事 …

no image

JSFのメッセージのレンダリング

ManagedBeanとJSFでメッセージのやり取りをする場合、直接メッセージを変数として持たせるよりは、JSFの仕組みを通じてメッセージを出力させたほうが適切です。 Contents1 エラーメッセ …