jarファイルの作り方 ~MacOSX~
MacOSXでjarファイルを作る時のメモ書きです。
jarファイルを作り方がわからない場合や、動かない場合などに参考にして下さい。
MacOSXでのjarファイルの作り方と良くあるミスを解説していきます。
jarファイルを作るために、先ずは適当なjavaプログラムを作ります。
Main.java
import java.util.Scanner; public class Main { public Main(){ //Do Nothing... } public static void main(String[] args) { Scanner aScanner = new Scanner(System.in); System.out.print("Enter something >> "); String msg = aScanner.nextLine(); System.out.println("msg = " + msg); } }
準備ができたら、一度実行してみます。
$ javac Main.java $ java Main Enter something >> Hello World!! msg = Hello World!!
ここまでで、下準備は終わりです。
今から実際にjarファイルを作って行きます。
jarコマンドをターミナルから実行し、jarファイルを実行してみると以下のようになると思います。
$ jar cvf sample.jar *.class マニフェストが追加されました Main.classを追加中です(入=773)(出=474)(38%収縮されました) $ java -jar sample.jar sample.jarにメイン・マニフェスト属性がありません
「sample.jarにメイン・マニフェスト属性がありません」という出力されてうまく行かないはずです。これはjarファイル内のMANIFEST.MFにMain-Class指定というのがないからです。
なので、今からMANIFEST.MFにMain-Class指定を追加します。以下のファイルを作成して下さい
SAMPLE.MF
Main-Class: Main
この時に、最終行は必ず改行を入れて下さい。そうじゃないと動きません。
また。Main-Class:の後にスペースを1つ入れないとこれも動かなくなります。
Main-Class: Main ○ Main-Class:Main ×
ファイルが作成出来たら、このSAMPLE.MFの設定をjarファイル作成の時に組み込みます。
cvfmとオプションを付けているので、jarファイル名 マニフェストファイル まとめるファイルの順に指定して下さい。
- f : jarファイル
- m : マニフェストファイル
jarファイルが実行出来るようになると思います。以下が実行結果です。
$ jar cvfm sample.jar SAMPLE.MF *.class マニフェストが追加されました Main.classを追加中です(入=773)(出=474)(38%収縮されました) $ java -jar sample.jar Enter something >> Hello World!! msg = Hello World!!
以上です。