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

Javaのコーディングルール

私自身、Javaで仕事をするようになってから3ヶ月ちょっとがたちました。 もともとPHPで仕事はしていましたが、我流でやっていたこともあり、コーディングのルールとかがいい加減だったんですよね・・ ボス …

no image

JSFのifタグ

JSFは基本的にテンプレートなので、 HTML+CSS+JavaScript ロジック側からの変数の出力 ループ処理 以上のことをさせることはあまりありません。 が、まれに条件分岐なんかをさせたいとき …

no image

Streamでの特定条件化のカウント&合計値算出

Java8、streamで値を抽出し、カウントと合計値の算出について、小ネタです。 一番多いのがList<Map>タイプの値の検出です。 [crayon-628988359a4822117 …

no image

イテレーターに関して

Javaの繰り返しでイテレーターという概念がありますね。 今はあまり使われなくなっているようですが、資格の勉強をしていたら出てきたのと、たしなみとして知っておく必要があるため、記述します。 ソース [ …

no image

GlassFishとTomcatの違い

JavaEEの開発を始めてからは基本的にサーバーとしてGlassFishを使っています。 一般的なJavaのサーバーというとTomcatが有名ではないでしょうか。少なくとも私はTomcatしか知りませ …

アーカイブ