実行可能なjarファイルとバッチファイルを作る

いつもjarファイルを作る時は、Eclipseを使っていたので、いざ普通にやってみようとすると困りました…。

(コーディングもEclipseちゃんに頼らないと全然できないのですが…)


http://sunjava.seesaa.net/category/3876581-1.html
を参考にさせて頂きました。

*以下、動作保障などは致しかねます…

jarファイル作成
jarファイルとしてまとめたいプログラムのクラスファイルを一つのディレクトリにまとめる。

作成したディレクトリに、マニフェストファイルを作成する。
(jarファイルを作成して、実行する時にどのクラスから見ればいいか教えてあげる必要があるらしい)
マニフェストファイルの中身
 Manifest-Version: 1.0
 Main-Class: sample(メインクラスの名前)

 ここで要注意なのが、メインクラスの名前の後に改行を入れること!
 (私はこれで延々と無駄に悩んでしまいました…)

以下のコマンドを実行する。
>jar cvfm sample.jar Manifest.txt *.class

sample.jar = 作成したいjarファイルの名前
Manitest.txt = 上で作ったマニフェストファイルの名前
*.class = このディレクトリの全部のクラスファイル(具体的に指定しても大丈夫のはず)

 ここで要注意なのが、この形式で実行する時はコマンドは「cvfm」の通り実行すること。
 順序が違うと、エラーメッセージ(java.io.FileNotFoundException)が出るのです。

>マニフェストが追加されました。
>○○.classを追加中です。(入 = ○○)(出 = ○○)(○○%収縮されました)
というメッセージが出力され、jarファイルが作成されてれば完了!


jarファイル実行
>java -jar sample.jar
を実行すればオッケー!!

batファイル作成
javaのコマンドではなく、単純にこのプログラムを実行したかったのでbatファイルにすることにしました。

sample.bat

#実行されたコマンドの結果が出力されないようにする
# @ をつけないとechooffが出力されてしまう
@echooff
#このバッチファイル内での環境変数設定を有効に
#今回は特にいみはないけど、なんとなくクセで…
setlocal

#作成したjarファイルの実行
java -jar sample.jar

#setlocalを終了する
endlocal


…本当は戻り値とかも設定したかったけど、今回は簡略的に。
このバッチファイルが動作するには、当たり前ですがjarとbatが同じディレクトリにいる必要があります。


しばらくやってないと、すぐに忘れてしまうこの頭をどうにかしたい…