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

JSFとManagedBeanがバインドされない

JSFとmanagedBeanはEL式.プロパティでバインドできますが、専用のタグを使わないとバインドされません。 managedBeanでtestというフィールドがあった場合、 JSF側で [cra …

no image

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

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

no image

JavaでのSQLの書き方

ちょっと小ネタです。 通常SQLを記述する場合、縦に分けて書くのが見た目にも見やすく、保守性も高いです。 例として

と書くよりは、 [ …

no image

Javaでのスクレイピング

スクレイピングというと一般的にはRubyが一番有名なようですが、もちろんスクレイピング自体はどの言語でも行うことができます。 Contents1 スクレイピングの手法1.1 正規表現1.2 HTMLパ …

no image

日付がらみの処理に関して(MySQL&Java)

MySQL触りだして3年ぐらいたつんですがいまだに整理できないことが多いです。(特に日付がらみ) ちょっとJavaのネタと合わせて整理しておこうかなーと思います。 Contents1 MySQLの日付 …