エクリプスのプロジェクトからJARファイルを作る。

覚書。

自分で作ったプログラムを自分一人で遊んでいる分にはエクリプス上でインタープリタ感覚で実行できるんだが、これをインターネットに公開したいとなると、ダブルクリックで起動できる(簡単に起動できる)形式にしなきゃならんでしょう。

わたしゃJAVAでプログラムを書いているのでそれを実現するにはJARファイルをつくればいい、ということ。手順は複雑なのでしばらくすると絶対に忘れるだろうから覚書として書いておきます。

Screenshot_from_2015-03-09 09:06:22まず、jarにしたいプロジェクトを選択して右クリック(またはファイルメニュー)から「エクスポート…」を選択。javaメニューには三通りの選択肢があるが、「JARファイル」を選択。そして「次へ」ボタン。

Screenshot_from_2015-03-09 09:08:49エクスポートするのはソースフォルダ(src)のみ。ちなみに事情により?リソースの一部、3Dモデルのオブジェクトファイルやサウンドファイルはsrcフォルダに入っている。3Dモデルなどに使用する「images」フォルダだけ外にあるのだがこれはここではエクスポートしない。後で別のjarファイルにして追加する。

ちょっと話がずれるが、後述するつもりだが、jarファイルが実行された時にリソースを読み込もうとするときにエクリプス上のプロジェクトではうまく行ってたパスの指定がエラーになる。getClassLoaderを使うんだけど試行錯誤の結果、このような形でできたのでこういう手順をとっている。もっとスマートで正しいやり方もあるはずなんだけどその勉強はまた後日。

エクスポートする先を指定してファイル名もここで指定する。

「次へ」ボタン。

Screenshot_from_2015-03-09 09:09:10マニフェストの生成は必要(だったと思う)。種々オプションは触らないw

メインクラスを指定する。ここでは「shooting」パッケージの「Main」クラスを指定している。

Screenshot_from_2015-03-09 09:17:32次に「JarSplice」を使う。

起動したての画面には簡単な説明が書かれている。

Screenshot_from_2015-03-09 09:19:231)ADD JARS

必要なjarを足していく。

  • 先ほどエクリプスで作ったソース本体のjar。
  • 画像リソースが入った「images.jar」これはそのフォルダを右クリックして圧縮することで作れる。拡張子には「.jar」を選ぶ。
  • 日本語フォントをlwjglで使うためのlwjgFontのjar。クラス本体とフォントの、2つのjarが必要。
  • さらにこれは「lwjgl」を使ったプログラムなのでlwjglのjarも追加。何故か最新のものではエラーを吐き出すので「lwjgl2.8.2」を使う。他には「jinput.jar」と「lwjgl_util.jar」が必要。他にもダウンロードしたlwjglには色々なjarが含まれているがどうやらこの3つで動くようだ。

(今回は)合計7つ。

Screenshot_from_2015-03-09 09:21:082)ADD NATIVES

MacOSXで動かすことは考えていないので(テストできないので)ネイティブライブラリーは「.dll」(Windows用)と「.so」(Linux用)を追加すればよい。ファイル名には「64」がついたものとそうではないものがあるが両方入れておくと32bitでも64bitでも動くようにできるようだ。

Screenshot_from_2015-03-09 09:21:423)MAIN CLASS

さきほどエクリプスでも指定したようにここでもメインクラスを指定する。「shooting」パッケージの「Main」クラスって指定だな。

Screenshot_from_2015-03-09 09:22:374)CREATE FAT JAR

ここでは「Create Fat Jar」ボタンを押すとダイアログが出てくる。

うまく行けば・・・・・成功する。何か手順がおかしかったりするとエラーになることもある。

linuxで生成されたjarファイルを実行するときはファイルを右クリックしてプロパティの「実行可能なプログラム・・・」云々にチェックを入れて置かなければならない。

できたファイルをダブルクリックすれば・・・・・・・・

Screenshot_from_2015-03-09 10:11:38見事!起動しました。ああ、よかった。長かった。

コメントを残す

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