skillup

技術ブログ

Java

mavenでのjarファイル作成

投稿日:2015年10月22日 更新日:

ここ半年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です。

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

NetBeansのMavenプロジェクトで実行可能ファイルを作る

mavenで実行可能なjarファイルと依存ライブラリを含めたzipアーカイブを作成する

依存ライブラリエラー

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

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

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

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

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

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

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

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

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

JARファイル

-Java
-,

執筆者:


comment

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

関連記事

no image

JPQLでの算術関数

複雑なJPQLを書いていると、通常のレコードの取り出しだけではなく、合計(SUM)や算出(COUNT)などのいわゆる算術関数を使うことが一般的です。 JPQLでもこれらを通常通り扱うことができます。 …

no image

Seleniumでの画面テスト

普段テストはJunitで単体テストを書いていますが、画面からのテストなどは当然チェックできません。 フレームワークだとどうしても内部構造がわからず画面から直接うごかして確認しなくてはいけないようなケー …

no image

JavaEEとは?

JavaEEのブログといいつつ、JavaEEについて全然書いていませんでした・・・ ちょっとJavaEEについて書かせていただきます。 Contents1 そもそもJavaとは?1.1 Javaの定義 …

no image

ポリモフィズム(多態性)とは

Javaでオブジェクト指向の考え方の重要な考え方であるポリモフィズムについて。 Contents1 ポリモフィズムとは?2 ソース ポリモフィズムとは? 日常的に使っていながらいざ説明するとなると困り …

no image

メソッドのtransient

エンティティを作成するときに、データベースのカラムにない値をプロパティを持たせるためにはtransientという修飾子が必要です。 参考リンク フィールド以外のプロパティをエンティティに持たせる 通常 …

アーカイブ