jarファイルの作り方
parentディレクトリから見て .. をパッケージのルートとして
[hirasawa@ubuntu1204-20 parent]$ pwd /home/hirasawa/step0/jar_test/parent
まずは親をつくってみる
[hirasawa@ubuntu1204-20 parent]$ cat Parent.java package parent; import parent.child.*; public class Parent { public static void main(String[] args) { Child child = new Child(); child.exec(); } } [hirasawa@ubuntu1204-20 parent]$
続いて子をつくってみる
[hirasawa@ubuntu1204-20 parent]$ cat ./child/Child.java package parent.child; public class Child { public void exec() { System.out.println("Go"); } } [hirasawa@ubuntu1204-20 parent]$
ここまでで準備は完了。
コンパイルして、実行してみる
[hirasawa@ubuntu1204-20 parent]$ javac -classpath .. Parent.java [hirasawa@ubuntu1204-20 parent]$ java -classpath .. parent.Parent Go [hirasawa@ubuntu1204-20 parent]$
よしよし。
それではjarファイルをつくってみるよ
[hirasawa@ubuntu1204-20 jar_test]$ pwd /home/hirasawa/step0/jar_test [hirasawa@ubuntu1204-20 jar_test]$ ls -ltr | grep parent drwxrwxr-x 3 hirasawa hirasawa 4096 1月 3 13:02 parent [hirasawa@ubuntu1204-20 jar_test]$ [hirasawa@ubuntu1204-20 jar_test]$ [hirasawa@ubuntu1204-20 jar_test]$ [hirasawa@ubuntu1204-20 jar_test]$ jar cvf parent.jar parent/ マニフェストが追加されました parent/を追加中です(入=0)(出=0)(0%格納されました) parent/Parent.javaを追加中です(入=152)(出=118)(22%収縮されました) parent/Parent.classを追加中です(入=330)(出=247)(25%収縮されました) parent/child/を追加中です(入=0)(出=0)(0%格納されました) parent/child/Child.classを追加中です(入=394)(出=281)(28%収縮されました) parent/child/Child.javaを追加中です(入=101)(出=92)(8%収縮されました) [hirasawa@ubuntu1204-20 jar_test]$ ls -ltr | grep jar -rw-rw-r-- 1 hirasawa hirasawa 1807 1月 3 13:15 parent.jar [hirasawa@ubuntu1204-20 jar_test]$ jar tvf parent.jar 0 Fri Jan 03 13:15:08 JST 2014 META-INF/ 68 Fri Jan 03 13:15:08 JST 2014 META-INF/MANIFEST.MF 0 Fri Jan 03 13:02:14 JST 2014 parent/ 152 Fri Jan 03 12:59:04 JST 2014 parent/Parent.java 330 Fri Jan 03 13:12:44 JST 2014 parent/Parent.class 0 Fri Jan 03 13:02:22 JST 2014 parent/child/ 394 Fri Jan 03 13:02:26 JST 2014 parent/child/Child.class 101 Fri Jan 03 13:02:22 JST 2014 parent/child/Child.java [hirasawa@ubuntu1204-20 jar_test]$
jarファイルを実行するには
java -cp parent.jar parent.Parent
ちなみは -cpは-classpathのことですね
参考
http://www.ytp.ne.jp/tech/java/sineruka/jarhowto.html
http://homepage1.nifty.com/algafield/java-programming-primer.html