Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
This code is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 2 only, as
published by the Free Software Foundation.
This code is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
version 2 for more details (a copy is included in the LICENSE file that
accompanied this code).
You should have received a copy of the GNU General Public License version
2 along with this work; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
CA 95054 USA or visit www.sun.com if you need additional information or
have any questions.
`
\f3jar ��ʣ���Υե������ 1 �Ĥ� Java Archive (JAR) �ե�����˷�礷�ޤ���
This document was created by saving an HTML file as text
from the JavaSoft web site:
http://java.sun.com/j2se/1.5/docs/tooldocs/tools.html
and adding appropriate troff macros. Because the JavaSoft web site
man pages can change without notice, it may be helpful to diff
files to identify changes other than new functionality.
3 jar �ե�����κ��� \f4jar c\f2[v0Mmfe] [\f2manifest\f2] [\f2jarfile\f2] [\f2entrypoint\f2] [-C \f2dir\f2] \f2inputfiles \f2[-J\f2option\f2]
3 jar �ե�����ι��� \f4jar u\f2[v0Mmfe] [\f2manifest\f2] [\f2jarfile\f2] [\f2entrypoint\f2] [-C \f2dir\f2] \f2inputfiles \f2[-J\f2option\f2]
3 jar �ե��������� \f4jar x\f2[vf] [\f2jarfile\f2] [\f2inputfiles\f2] [-J\f2option\f2]
3 jar �ե���������Ƥΰ�������� \f4jar t\f2[vf] [\f2jarfile\f2] [\f2inputfiles\f2] [-J\f2option\f2]
3 jar �ե�����˥���ǥå������ɲ� \f4jar i \f2jarfile \f2[-J\f2option\f2]
�ѥ���
3 cuxtiv0Mmfe jar ���ޥ�ɤ����椹�륪�ץ����
3 jarfile ���� (c)������ (u)����� (x)���ޤ��ϱ�����������Ƥΰ�������� (t) ���� jar �ե�����Ǥ��� -f ���ץ����ȥե�����̾ jarfile ���ФˤʤäƤ��ޤ��� ���Ѥ�����ϡ�ξ�����˻��Ѥ��ޤ��� f ����� jarfile ���ά����ȡ�ɸ�����Ϥ����jar �ե�����פ� ���Ѥ��줿�� (x ����� t �ξ��)��ɸ����Ϥˤ��Ρ�jar �ե�����פ� �������줿�ꤷ�ޤ� (c ����� u �ξ��)��
3 inputfiles jar �ե����� �˷�� (c ����� u �ξ��)���ޤ��� jar �ե����� ������� (x �ξ��) �ޤ��ϰ���ɽ�� (t �ξ��) �����ե����� �ޤ��ϥǥ��쥯�ȥꡣ����ʸ��Ƕ��ڤ�ޤ��� ���٤ƤΥǥ��쥯�ȥ�ϺƵ�Ū�˽����ޤ��� ���ץ���� 0 (����) �����Ѥ���ʤ����ϡ��ե����뤬���̤���ޤ���
3 manifest jar �ե������ MANIFEST.MF �˴ޤ�褦�Ȥ���̾��:�ͥڥ����ޤޤ�Ƥ��� ��¸�� manifest �ե�����Ǥ��� -m ���ץ����� manifest �Υե�����̾���ФˤʤäƤ��ޤ��� ���Ѥ�����ϡ�ξ�����˻��Ѥ��ޤ��� ʸ�� m �� f ������� e �νи����ϡ� manifest �� jarfile ������� entrypoint �νи����Ȱ��פ���ɬ�פ�����ޤ���
3 entrypoint �¹Բ�ǽ JAR �ե�������˥Х�ɥ뤵�줿������ɥ���ץꥱ�������Υ��ץꥱ�������ȥ�ݥ���ȤȤ������ꤹ�륯�饹��̾���� -e ���ץ����� entrypoint ���ФˤʤäƤ��ޤ����ɤ��餫����ꤹ�����ξ��Ȥ���ꤹ��ɬ�פ�����ޤ���ʸ�� m �� f �� e �νи����� manifest �� jarfile �� entrypoint �νи����Ȱ��פ���ɬ�פ�����ޤ���
3 -C dir ��³�����ϥե��������ν����桢 �ǥ��쥯�ȥ�� dir �˰��Ū���ѹ����ޤ��� ʣ���� -C " dir" ���ϥե�����Υ��åȤ���ѤǤ��ޤ���
3 -Joption Java Runtime Environment ���Ϥ���륪�ץ���� ( -J �� option �δ֤ˤ϶���ʸ�������ʤ��Ǥ�������)��
ʣ���Υե������ jar �ե��������礹��ɸ��Ū�ʻȤ���ϼ��ΤȤ���Ǥ���
% jar cf myFile.jar *.class
������Ǥϡ����ߤΥǥ��쥯�ȥ���Τ��٤ƤΥ��饹�ե����뤬 myFile.jar �Ȥ���̾���Υե�������֤���ޤ��� jar �ġ���ϼ�ưŪ�ˡ� META-INF/MANIFEST.MF �Ȥ���̾���Υޥ˥ե����ȥե����륨��ȥ���������ޤ�������Ͼ�ˡ�JAR �ե�����κǽ�Υ���ȥ�ˤʤ�ޤ����ޥ˥ե����ȥե�����ϡ����������֤˴ؤ������������������Υǡ����� name : value �ڥ��Ȥ��Ƴ�Ǽ���ޤ���jar �ġ��뤬�ޥ˥ե����ȥե�������˥������Ǽ������ˡ�ξܺ٤ˤĤ��Ƥϡ�
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest �� ��JAR file specification�פȤ��Ƥ�����������¸�Υޥ˥ե����ȥե�������˳�Ǽ���줿 name : value �ڥ��� JAR �ե�����˴ޤ��ɬ�פ�������ˤϡ����Υե�����Τ褦�� \f2-m ���ץ�����Ȥäƻ��ꤷ�ޤ���
\f3 .fl % jar cmf myManifestFile myFile.jar *.class .fl
��¸�Υޥ˥ե����ȥե�����ϲ���ʸ��ǽ���äƤ���ɬ�פ�����ޤ��� �ޥ˥ե����ȥե����뤬����ʸ��ǽ���äƤ��ʤ���硢\f3jar �Ϥ��κǸ�ιԤ���Ϥ��ޤ���
\f3��: ���ޥ�ɹԤ� cmf �ǤϤʤ� cfm �����ꤵ�줿 jar ���ޥ�� (m �� -f ���ץ����ν��֤�դˤ���) �ξ�硢\f3jar ���ޥ�ɹԤˤޤ� jar ���������֤�̾������ꤷ��³���ƥޥ˥ե����ȥե������̾������ꤹ��ɬ�פ�����ޤ�����������ޤ���
% jar cfm myFile.jar myManifestFile *.class
manifest �� RFC822 ASCII �����˴�Ť����ƥ����ȷ�������Ѥ��뤿�ᡢmanifest �ե���������Ƥ� ��ñ��ɽ������ӽ���Ǥ��ޤ���
jar �ե����뤫��ե��������Ф�����ϡ� x ����Ѥ��ޤ�����������ޤ���
% jar xf myFile.jar
jar �ե����뤫����̤Υե��������Ф�����ϡ� ���Υե�����̾����ꤷ�ޤ���
% jar xf myFile.jar foo bar
JDK �ΥС������ 1.3 ���顢jar �桼�ƥ���ƥ���
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Index �Ρ� JarIndex �פݡ��Ȥ���褦�ˤʤ�ޤ����� ����ˤ�ꡢ ���ץꥱ�������Υ��饹�?���ϡ�jar �ե����뤫�� ���饹�����®���ɤ߹����褦�ˤʤ�ޤ����� ���ץꥱ�������ޤ��ϥ��ץ�åȤ�ʣ���� jar �ե������ �Х�ɥ뤵��Ƥ����硢ɬ�פ� jar �ե���������������� �?�ɤ���Ƴ����졢���饹���ɤ߹��ޤ�ޤ��� ���Υѥե����ޥκ�Ŭ���ϡ� jar �� -i ���ץ�������Ѥ��Ƽ¹Ԥ����ͭ��ˤʤ�ޤ��� ���ꤷ�� �ᥤ��� jar �ե����뤪��Ӥ��Υե����뤬��¸���Ƥ��� ���٤Ƥ� jar �ե�����Υѥå��������־�����������ޤ��� �����ξ���ϡ��ᥤ�� jar �ե������ manifest �� Class-Path °���� ���ꤹ��ɬ�פ�����ޤ���
% jar i main.jar
������Ǥϡ� INDEX.LIST �ե����뤬 main.jar �� META-INF �ǥ��쥯�ȥ���ɲä���ޤ��� ���ץꥱ�������Υ��饹�?���Ǥϡ����Υե�����˳�Ǽ���줿����� ���Ѥ��ơ����饹�Υ?�ɤ��®�����ޤ��� ����ǥå����ե�����˰��־�����Ǽ������ˡ�ξܺ٤ϡ� ��JarIndex ���͡פȤ��Ƥ���������
�ǥ��쥯�ȥ�ԡ�����ˤϡ��ޤ� dir1 ��Υե�����̤���ɸ����Ϥ˽��Ϥ���³����ɸ�����Ϥ��� dir2 ����Ф��ޤ� (ξ��� jar ���ޥ�ɤ��� -f ���ץ�����ʤ�)����������ޤ���
% (cd dir1; jar c .) | (cd dir2; jar x)
jar ��Ȥä� JAR �ե������ JAR �ե�����ޥ˥ե����Ȥ����륳�ޥ�ɥ���ץ���ǧ����ˤϡ�����פȤ��Ƥ����������ޤ���
http://java.sun.com/docs/books/tutorial/jar �� ��Java Tutorial�פ� JAR �������⻲�Ȥ��Ƥ���������
% jar uf foo.jar foo.class
������Ǥϡ��ե����� foo.class ����¸�� jar �ե����� foo.jar ���ɲä���ޤ��� u ���ץ����Ǥϡ��ޥ˥ե����ȤΥ���ȥ�����뤳�Ȥ�Ǥ��ޤ����ʲ�������ޤ���
% jar umf manifest foo.jar
foo.jar �ޥ˥ե����Ȥ�ޥ˥ե��������̾��:�ͥڥ��ǹ������ޤ��� x �ե����뤪��ӥǥ��쥯�ȥ�� jarfile ( f ����ꤷ�����)�� �ޤ���ɸ������ ( f �� jarfile ���ά�������) ������Ф��ޤ��� ���ϥե��������ꤷ����硢�������ϥե�����ǻ��ꤵ�줿�ե����뤪��ӥǥ��쥯�ȥ������ ��Ф���ޤ������ꤷ�ʤ����ϡ����٤ƤΥե����뤪��ӥǥ��쥯�ȥ꤬��Ф���ޤ��� ��Ф��줿�ե����������ϡ�����������������ꤵ�줿��ΤǤ��� t jarfile ( f ����ꤷ�����)���ޤ���ɸ������ ( f �� jarfile ���ά�������) �������Ƥ�ꥹ�Ȥ��ޤ������ϥե��������ꤷ����硢 �������ϥե�����ǻ��ꤵ�줿�ե����뤪��ӥǥ��쥯�ȥ������ �ꥹ�Ȥ���ޤ������ꤷ�ʤ����ϡ����٤ƤΥե����뤪��ӥǥ��쥯�ȥ꤬�ꥹ�Ȥ���ޤ��� i ���ꤵ�줿 jarfile ����Ӵ�Ϣ�Ť����Ƥ��� jar �ե������ ����ǥå���������������ޤ�����������ޤ���
% jar i foo.jar
foo.jar �� INDEX.LIST �ե����뤬��������ޤ��� ���Υե�����ˤϡ� foo.jar �γƥѥå���������� foo.jar �� Class-Path °���˻��ꤵ��Ƥ��뤹�٤Ƥ� jar �ե������ ���־����ޤ�Ƥ��ޤ��� ����ǥå�������Ȥ��Ƥ��������� f ���� (c)������ (u)����� (x)������ǥå�������(i)�� �ޤ���ɽ�� (t) ���� jarfile ����ꤷ�ޤ��� -f ���ץ����� jarfile �Υե�����̾���ФˤʤäƤ��ޤ��� ���Ѥ�����ϡ�ξ�����˻��Ѥ��ޤ��� f �� jarfile ���ά����ȡ�ɸ�����Ϥ��� jar �ե�����̾�� ���Ѥ��줿�� (x ����� t �ξ��)��ɸ����Ϥ� jar �ե����뤬 �������줿�ꤷ�ޤ� (c ����� u �ξ��)�� v ɸ����Ϥ˾ܺ٤ʽ��Ϥ��������ޤ�����������ޤ��� 0 ���?ZIP ���̤���Ѥ����˳�Ǽ���ޤ��� M manifest �ե����륨��ȥ��������ޤ��� (c ����� u �ξ��)���ޤ��� ���Ǥ�¸�ߤ��� manifest �ե����륨��ȥ����ޤ� (u �ξ��)�� m ���ꤷ���ޥ˥ե����ȥե����� manifest ���� ̾��:��°����ե����� META-INF/MANIFEST.MF �˼����ߤޤ��� ���Ǥ�Ʊ��̾����¸�ߤ��ʤ��¤ꡢ jar �Ϥ���̾��:�ͥڥ����ɲä��ޤ���Ʊ��̾����¸�ߤ�����ϡ� jar �Ϥ����ͤ����ޤ���
���ޥ�ɹԤǤϡ�ʸ�� m �� f �ϡ� manifest �� jarfile ���и�����Τ� Ʊ�����ǻ��Ѥ��ޤ�����������ޤ���
% jar cmf myManifestFile myFile.jar *.class
manifest �ե�����ˤϡ��ǥե���ȤΥޥ˥ե����Ȥ˴ޤޤ�Ƥ��ʤ��� ���Ѥ�̾��:��°���ڥ����ɲäǤ��ޤ��� ���Ȥ��С� �٥�������С��������ѥå������������ �ޤ��� JAR �˥Х�ɥ뤵�줿���ץꥱ��������¹Ԥ��뤿���°���� �ɲäǤ��ޤ��� -m ���ץ����λ�����ˤĤ��Ƥϡ���Java Tutorial��
http://java.sun.com/docs/books/tutorial/jar/ �ˤ��� �� JAR Files �ץ������Ȥ��Ƥ���������3 e �¹Բ�ǽ JAR �ե�������˥Х�ɥ뤵�줿������ɥ���ץꥱ�������Υ��ץꥱ�������ȥ�ݥ���ȤȤ��ơ� entrypoint �����ꤷ�ޤ������Υ��ץ�������Ѥ���ȡ��ޥ˥ե����ȥե�������� Main-Class °���ͤ������ޤ��Ͼ����ޤ������Υ��ץ����ϡ�JAR �ե�����κ�����ޤ��Ϲ�����˻��ѤǤ��ޤ������Υ��ץ�����Ȥ��С��ޥ˥ե����ȥե�������Խ��ޤ��Ϻ������뤳�Ȥʤ��ˡ����ץꥱ�������Υ���ȥ�ݥ���Ȥ����Ǥ��ޤ���
���Ȥ��С����Υ��ޥ�ɤ� Main.jar ��������ޤ��������κݡ��ޥ˥ե����ȥե�������� Main-Class °���ͤ� Main �����ꤵ��ޤ���
���Υ��ޥ�ɤ�¹Ԥ���� java ����फ��ľ�ܤ��Υ��ץꥱ��������ư�Ǥ��ޤ���
\f3 .fl java -jar Main.jar .fl
META-INF/ META-INF/MANIFEST.MF bar1 bar2 xyz.class
����ե�����ˤϡ����ץ����ȥե�����̾��ޤ�뤳�Ȥ��Ǥ��ޤ��� ����ե�������ΰ���϶���ʸ����ڤ�ޤ��ϲ��Զ��ڤ�ˤ��ޤ��� ����ե�������Υե�����̾�ϡ�����ե�����ΰ��֤��Ф��ƤǤϤʤ��� ���ߤΥǥ��쥯�ȥ���Ф�������Ū�˻��ꤷ�ޤ��� �̾�ϥ��ڥ졼�ƥ������ƥॷ����ˤ�ä�Ÿ�������磻��ɥ����� (*) �� Ÿ������ޤ��ե������Ƶ�Ū�˲�᤹�뤿��� @ ʸ��ϻ��ѤǤ��ޤ��� -J ���ץ����ϡ���ư�ץ?�����Ϥ���뤿�ᡢ���ݡ��Ȥ���Ƥ��ޤ��� ��ư�ץ?���Ǥϰ���ե��������ѤǤ��ʤ�����Ǥ���
jar �μ¹Ի����ư���ե�����Υѥ������̾������Ƭ�� @ ʸ����դ����Ϥ��ޤ��� jar ����Ƭ��ʸ�� @ ���դ���������и����뤿�Ӥˡ� ���Υե���������Ƥ�����ꥹ�Ȥ�Ÿ������ޤ���
������Ǥϡ� find ���ޥ�ɤ�����Ϥ��줿�ե�����̾�� classes.list ��˳�Ǽ���Ƥ��ޤ���
% find . -name '*.class' -print > classes.list
���θ塢����ե����빽ʸ��Ȥä� jar �˥ꥹ�Ȥ��Ϥ��ȡ� Classes.list �� jar ���ޥ�ɤ�¹ԤǤ��ޤ���
% jar cf my.jar @classes.list
����ե�����ϥѥ������Ǥ��ޤ��������Хѥ������Ҥ��줿����ե�������� ���٤ƤΥե�����̾�ϡ��Ϥ��줿�ѥ����Ф�������Ū�ǤϤʤ��� ���ߤκ�ȥǥ��쥯�ȥ������Ū�Ȥʤ�ޤ�����������ޤ���
% jar @path1/classes.list
\f3
% ls 1.au Animator.class monkey.jpg 2.au Wave.class spacemusic.au 3.au at_work.gif% jar cvf bundle.jar * added manifest adding: 1.au(in = 2324) (out= 67)(deflated 97%) adding: 2.au(in = 6970) (out= 90)(deflated 98%) adding: 3.au(in = 11616) (out= 108)(deflated 99%) adding: Animator.class(in = 2266) (out= 66)(deflated 97%) adding: Wave.class(in = 3778) (out= 81)(deflated 97%) adding: at_work.gif(in = 6621) (out= 89)(deflated 98%) adding: monkey.jpg(in = 7667) (out= 91)(deflated 98%) adding: spacemusic.au(in = 3079) (out= 73)(deflated 97%) \f1
\f3
% ls -F audio/ classes/ images/ % jar cvf bundle.jar audio classes images added manifest adding: audio/(in = 0) (out= 0)(stored 0%) adding: audio/1.au(in = 2324) (out= 67)(deflated 97%) adding: audio/2.au(in = 6970) (out= 90)(deflated 98%) adding: audio/3.au(in = 11616) (out= 108)(deflated 99%) adding: audio/spacemusic.au(in = 3079) (out= 73)(deflated 97%) adding: classes/(in = 0) (out= 0)(stored 0%) adding: classes/Animator.class(in = 2266) (out= 66)(deflated 97%) adding: classes/Wave.class(in = 3778) (out= 81)(deflated 97%) adding: images/(in = 0) (out= 0)(stored 0%) adding: images/monkey.jpg(in = 7667) (out= 91)(deflated 98%) adding: images/at_work.gif(in = 6621) (out= 89)(deflated 98%) % ls -F audio/ bundle.jar classes/ images/\f1
\f3
% jar tf bundle.jar META-INF/ META-INF/MANIFEST.MF audio/1.au audio/2.au audio/3.au audio/spacemusic.au classes/Animator.class classes/Wave.class images/monkey.jpg images/at_work.gif\f1
��:
���Ȥ��г����ץꥱ��������������¸���Ƥ��륯�饹�� main.jar �� buy.jar �� ����� sell.jar �Ȥ��� 3 �Ĥ� jar �ե����� ��ʬ�䤷���Ȥ��ޤ��� main.jar �Υޥ˥ե����Ȥ� Class-Path °���˼��Τ褦�˻��ꤷ����硢
Class-Path: buy.jar sell.jar
-i ���ץ�������Ѥ���С����ץꥱ�������Υ��饹�� �ɤ߹��ߤ��®���Ǥ��ޤ���
% jar i main.jar
INDEX.LIST �ե����뤬 META-INF �ǥ��쥯�ȥ���ɲä���ޤ��� ���η�̡����ץꥱ�������Υ��饹�?���ˤ�äƥ��饹�ޤ��� ������θ������Ԥ���Ȥ��ˡ�Ŭ�ڤ� jar �ե����뤬������?�ɤ���ޤ���
http://java.sun.com/javase/6/docs/technotes/guides/jar/jarGuide.html �� �� The Jar Overview ��
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html �� �� The Jar File Specification ��
http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Index �� �� The JarIndex Spec ��
http://java.sun.com/docs/books/tutorial/jar �� �� Jar Tutorial �� (Java ���եȥ������� Web ��������)
http://java.sun.com/javase/6/docs/technotes/tools/share/pack200.html �� �� pack200 Reference Page ��