いまさらだけどjarへのまとめ方

jarから、実行できるようにするには、マニュフェストに、Main-Classを記述しなくてはならない。

Main-Class: 実行クラス名(.classは外して)

ただこの1行だけで、10分ほどはまった。

「:」の後に、「 」半角スペースが必要だったのだ。スペースなしで実行すると、

java.io.IOException: invalid header field
        at java.util.jar.Attributes.read(Attributes.java:387)
        at java.util.jar.Manifest.read(Manifest.java:167)
        at java.util.jar.Manifest.(Manifest.java:52)
        at sun.tools.jar.Main.run(Main.java:124)
        at sun.tools.jar.Main.main(Main.java:904)

が発生してしまう。

各オプションは、ヘルプを見てもらうとして、以下のようなコマンドを実行した。
jar cvfm hoge.jar META-INF\MANIFEST.MF *.class


後は、hoge.jarを使うだけ。