'\" t .\" Copyright (c) 1997, 2013, Oracle and/or its affiliates. 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA .\" or visit www.oracle.com if you need additional information or have any .\" questions. .\" .\" Arch: generic .\" Software: JDK 8 .\" Date: 21 November 2013 .\" SectDesc: Basic Tools .\" Title: jar.1 .\" .if n .pl 99999 .TH jar 1 "21 November 2013" "JDK 8" "Basic Tools" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" jar \- دستکاری و مدیریت فایل‌های آرشیو جاوا (JAR)\&. .SH "خلاصه دستور (SYNOPSIS)" ایجاد فایل JAR .sp .nf \fBjar c\fR[\fBefmMnv0\fR] [\fIentrypoint\fR] [\fIjarfile\fR] [\fImanifest\fR] [\fB\-C\fR \fIdir\fR] \fIfile\fR \&.\&.\&. [\-J\fIoption\fR \&.\&.\&.] [@\fIarg\-file\fR \&.\&.\&.] .fi .sp به‌روزرسانی فایل JAR .sp .nf \fBjar u\fR[\fBefmMnv0\fR] [\fIentrypoint\fR] [\fIjarfile\fR] [\fImanifest\fR] [\fB\-C\fR \fIdir\fR] \fIfile\fR \&.\&.\&. [\-J\fIoption\fR \&.\&.\&.] [@\fIarg\-file\fR \&.\&.\&.] .fi .sp استخراج فایل JAR .sp .nf \fBjar\fR \fBx\fR[\fBvf\fR] [\fIjarfile\fR] \fIfile\fR \&.\&.\&. [\-J\fIoption\fR \&.\&.\&.] [@\fIarg\-file\fR \&.\&.\&.] .fi .sp فهرست کردن محتویات فایل JAR .sp .nf \fBjar\fR \fBt\fR[\fBvf\fR] [\fIjarfile\fR] \fIfile\fR \&.\&.\&. [\-J\fIoption\fR \&.\&.\&.] [@\fIarg\-file\fR \&.\&.\&.] .fi .sp افزودن نمایه (Index) به فایل JAR .sp .nf \fBjar\fR \fBi\fR \fIjarfile\fR [\-J\fIoption\fR \&.\&.\&.] [@\fIarg\-file\fR \&.\&.\&.] .fi .sp .SH "توضیحات (DESCRIPTION)" دستور \f3jar\fR یک ابزار همه‌منظوره برای آرشیو و فشرده‌سازی است که بر پایه قالب‌های فشرده‌سازی ZIP و ZLIB طراحی شده است\&. با این حال، هدف اصلی از طراحی دستور \f3jar\fR، بسته‌بندی اپلت‌ها (applets) یا برنامه‌های کاربردی جاوا در قالب یک آرشیو واحد بوده است\&. هنگامی که اجزای یک اپلت یا برنامه (فایل‌ها، تصاویر و صداها) در یک آرشیو واحد گرد هم می‌آیند، می‌توانند توسط یک عامل جاوا (مانند یک مرورگر وب) در قالب یک تراکنش واحد HTTP بارگیری شوند، به‌جای آن‌که برای هر قطعه به برقراری یک اتصال جدید نیاز باشد\&. این امر زمان بارگیری را به‌طور چشمگیری کاهش می‌دهد\&. همچنین دستور \f3jar\fR فایل‌ها را فشرده می‌کند که این خود باعث بهبود بیشتر زمان بارگیری می‌شود\&. علاوه‌بر این، دستور \f3jar\fR به پدیدآورنده اپلت امکان می‌دهد که مدخل‌های مجزا در فایل را امضا کند تا هویت و اصالت آن‌ها قابل اعتبارسنجی باشد\&. یک فایل JAR، صرف‌نظر از اینکه فشرده شده باشد یا خیر، می‌تواند به‌عنوان یک مدخل class path مورد استفاده قرار گیرد\&. .PP نحو دستور \f3jar\fR به نحو دستور \f3tar\fR شباهت دارد\&. این دستور چندین حالت عملیاتی دارد که توسط یکی از \fIآرگومان‌های عملیات\fR اجباری مشخص می‌شوند\&. سایر آرگومان‌ها یا \fIگزینه‌ها\fR هستند که رفتار عملیات را تغییر می‌دهند، یا \fIعملوندها\fR هستند که برای اجرای عملیات مورد نیازند\&. .SH "آرگومان‌های عملیات (OPERATION ARGUMENTS)" هنگام استفاده از دستور \f3jar\fR، باید با تعیین یکی از آرگومان‌های عملیات زیر، عملیاتی را که مایل به اجرای آن هستید مشخص کنید\&. می‌توانید آن‌ها را با سایر گزینه‌های تک‌حرفی در خط فرمان ترکیب کنید، اما معمولاً آرگومان عملیات نخستین آرگومانی است که مشخص می‌شود\&. .TP c یک آرشیو JAR جدید ایجاد می‌کند\&. .TP i اطلاعات نمایه (index) را برای یک آرشیو JAR تولید می‌کند\&. .TP t محتویات یک آرشیو JAR را فهرست می‌کند\&. .TP u یک آرشیو JAR موجود را به‌روزرسانی می‌کند\&. .TP x فایل‌ها را از یک آرشیو JAR استخراج می‌کند\&. .SH "گزینه‌ها (OPTIONS)" از گزینه‌های زیر برای سفارشی‌سازی نحوه ایجاد، به‌روزرسانی، استخراج یا مشاهده فایل JAR استفاده کنید: .TP e کلاس مشخص‌شده توسط عملوند \fIentrypoint\fR را به‌عنوان نقطه ورود (entry point) برنامه مستقل جاوا که درون یک فایل JAR اجرایی بسته‌بندی شده است، تنظیم می‌کند\&. استفاده از این گزینه، مقدار صفت \f3Main-Class\fR را در فایل مانیفست ایجاد کرده یا آن را بازنویسی می‌کند\&. گزینه \f3e\fR را می‌توان هنگام ایجاد (\f3c\fR) یا به‌روزرسانی (\f3u\fR) فایل JAR به کار برد\&. برای نمونه، دستور زیر آرشیو \f3Main\&.jar\fR را به همراه فایل \f3Main\&.class\fR ایجاد می‌کند که در آن مقدار صفت \f3Main-Class\fR در مانیفست بر روی \f3Main\fR تنظیم شده است: .sp .nf \f3jar cfe Main\&.jar Main Main\&.class\fP .fi .nf \f3\fP .fi .sp محیط زمان اجرای جاوا (JRE) می‌تواند با اجرای دستور زیر مستقیماً این برنامه را فراخوانی کند: .sp .nf \f3java \-jar Main\&.jar\fP .fi .nf \f3\fP .fi .sp اگر نام کلاس نقطه ورود درون یک بسته (package) قرار داشته باشد، می‌تواند از نقطه (\&.) یا اسلش (/) به‌عنوان جداکننده استفاده کند\&. برای نمونه، اگر \f3Main\&.class\fR درون بسته‌ای به نام \f3mydir\fR باشد، نقطه ورود را می‌توان به یکی از روش‌های زیر مشخص کرد: .sp .nf \f3jar \-cfe Main\&.jar mydir/Main mydir/Main\&.class\fP .fi .nf \f3jar \-cfe Main\&.jar mydir\&.Main mydir/Main\&.class\fP .fi .nf \f3\fP .fi .sp نکته مشخص کردن هم‌زمان هر دو گزینه \f3m\fR و \f3e\fR در صورتی که مانیفست مورد نظر از قبل دارای صفت \f3Main-Class\fR باشد، منجر به مشخص‌سازی مبهم \f3Main-Class\fR خواهد شد\&. این ابهام سبب بروز خطا شده و عملیات ایجاد یا به‌روزرسانی دستور \f3jar\fR متوقف می‌شود\&. .TP f فایل مشخص‌شده توسط عملوند \fIjarfile\fR را به‌عنوان نام فایل JAR که ایجاد (\f3c\fR)، به‌روزرسانی (\f3u\fR)، استخراج (\f3x\fR) یا مشاهده (\f3t\fR) می‌شود تنظیم می‌کند\&. نادیده گرفتن گزینه \f3f\fR و عملوند \fIjarfile\fR باعث می‌شود دستور \f3jar\fR نام فایل JAR را از \f3stdin\fR دریافت کند (برای \f3x\fR و \f3t\fR) یا فایل JAR را به \f3stdout\fR بفرستد (برای \f3c\fR و \f3u\fR)\&. .TP m نام‌ها و مقادیر صفت‌ها را از فایلی که با عملوند \f3manifest\fR مشخص شده، در فایل مانیفست دستور \f3jar\fR (واقع در مسیر \f3META-INF/MANIFEST\&.MF\fR در آرشیو) می‌گنجاند\&. دستور \f3jar\fR نام و مقدار صفت را به فایل JAR می‌افزاید مگر آن‌که مدخلی با همان نام از پیش موجود باشد؛ در این حالت، دستور \f3jar\fR مقدار صفت را به‌روزرسانی می‌کند\&. گزینه \f3m\fR می‌تواند هنگام ایجاد (\f3c\fR) یا به‌روزرسانی (\f3u\fR) فایل JAR مورد استفاده قرار گیرد\&. می‌توانید جفت‌های صفت نام-مقدار با کاربرد ویژه را که در فایل مانیفست پیش‌فرض وجود ندارند به مانیفست بیفزایید\&. برای مثال، می‌توانید صفت‌هایی را اضافه کنید که اطلاعات سازنده، اطلاعات نسخه انتشار، مهروموم بسته (package sealing) را مشخص می‌کنند یا برنامه‌های موجود در بسته JAR را قابل اجرا می‌سازند\&. برای دیدن مثال‌هایی از کاربرد گزینه \f3m\fR، به بخش Packaging Programs در مراجعه کنید\&. .TP M هیچ مدخلی برای فایل مانیفست ایجاد نمی‌کند (برای \f3c\fR و \f3u\fR)، یا در صورت وجود، مدخل فایل مانیفست را حذف می‌کند (برای \f3u\fR)\&. گزینه \f3M\fR می‌تواند هنگام ایجاد (\f3c\fR) یا به‌روزرسانی (\f3u\fR) فایل JAR استفاده شود\&. .TP n هنگام ایجاد (\f3c\fR) یک فایل JAR، این گزینه آرشیو را نرمال‌سازی می‌کند تا محتوای آن تحت تأثیر عملیات بسته‌بندی و باز کردن دستور pack200(1) قرار نگیرد\&. بدون این نرمال‌سازی، ممکن است امضای دیجیتال یک JAR امضاشده نامعتبر شود\&. .TP v خروجی پرگو و مشروح (verbose) در خروجی استاندارد تولید می‌کند\&. بخش «مثال‌ها» را ببینید\&. .TP 0 (صفر) فایل JAR را بدون استفاده از فشرده‌سازی ZIP ایجاد (\f3c\fR) یا به‌روزرسانی (\f3u\fR) می‌کند\&. .TP -C \fIdir\fR .br هنگام ایجاد (\f3c\fR) یا به‌روزرسانی (\f3u\fR) یک فایل JAR، این گزینه در زمان پردازش فایل‌های تعیین‌شده توسط عملوندهای \fIfile\fR، دایرکتوری جاری را به‌طور موقت تغییر می‌دهد\&. عملکرد آن مشابه گزینه \f3-C\fR در ابزار \f3tar\fR یونیکس است\&. برای نمونه، دستور زیر مسیر را به دایرکتوری \f3classes\fR تغییر داده و فایل \f3Bar\&.class\fR را از آن دایرکتوری به \f3my\&.jar\fR اضافه می‌کند: .sp .nf \f3jar uf my\&.jar \-C classes Bar\&.class\fP .fi .nf \f3\fP .fi .sp دستور زیر به دایرکتوری \f3classes\fR رفته و تمامی فایل‌های درون آن را به \f3my\&.jar\fR می‌افزاید (بدون ایجاد دایرکتوری \f3classes\fR در فایل JAR)، سپس پیش از رفتن به دایرکتوری \f3bin\fR برای افزودن \f3Xyz\&.class\fR به \f3my\&.jar\fR، به دایرکتوری اولیه بازمی‌گردد\&. .sp .nf \f3jar uf my\&.jar \-C classes \&. \-C bin Xyz\&.class\fP .fi .nf \f3\fP .fi .sp اگر دایرکتوری \f3classes\fR شامل فایل‌های \f3bar1\fR و \f3bar2\fR باشد، پس از اجرای دستور فوق فایل JAR حاوی موارد زیر خواهد بود: .sp .nf \f3% \fIjar tf my\&.jar\fR\fP .fi .nf \f3META\-INF/\fP .fi .nf \f3META\-INF/MANIFEST\&.MF\fP .fi .nf \f3bar1\fP .fi .nf \f3bar2\fP .fi .nf \f3Xyz\&.class\fP .fi .nf \f3\fP .fi .sp.TP \fI\fR-J\fIoption\fR گزینه مشخص‌شده JVM را برای استفاده در هنگام اجرای فایل JAR توسط JRE تعیین می‌کند\&. گزینه‌های JVM در صفحه مرجع دستور java(1) شرح داده شده‌اند\&. برای نمونه، \f3-J-Xms48m\fR حافظه راه‌اندازی را روی ۴۸ مگابایت تنظیم می‌کند\&. .SH "عملوندها (OPERANDS)" عملوندهای زیر توسط دستور \f3jar\fR شناسایی می‌شوند\&. .TP \fIfile\fR هنگام ایجاد (\f3c\fR) یا به‌روزرسانی (\f3u\fR) یک فایل JAR، عملوند \fIfile\fR مسیر و نام فایل یا دایرکتوری را که باید به بایگانی افزوده شود، تعیین می‌کند\&. هنگام استخراج (\f3x\fR) یا فهرست کردن محتویات (\f3t\fR) یک فایل JAR، عملوند \fIfile\fR مسیر و نام فایلِ مورد نظر برای استخراج یا فهرست شدن را مشخص می‌کند\&. حداقل باید یک فایل یا دایرکتوری معتبر مشخص شود\&. چندین عملوند \fIfile\fR را با فاصله از هم جدا کنید\&. اگر از عملوندهای \fIentrypoint\fR، \fIjarfile\fR یا \fImanifest\fR استفاده شده باشد، عملوندهای \fIfile\fR باید پس از آن‌ها مشخص شوند\&. .TP \fIentrypoint\fR هنگام ایجاد (\f3c\fR) یا به‌روزرسانی (\f3u\fR) یک فایل JAR، عملوند \fIentrypoint\fR نام کلاسی را مشخص می‌کند که باید نقطه ورود (entry point)\f3\fR برای یک برنامه مستقل Java بسته‌بندی‌شده در یک فایل JAR اجرایی باشد\&. اگر گزینه \f3e\fR وجود داشته باشد، تعیین عملوند \fIentrypoint\fR الزامی است\&. .TP \fIjarfile\fR نام فایلی را مشخص می‌کند که قرار است ایجاد (\f3c\fR)، به‌روزرسانی (\f3u\fR)، استخراج (\f3x\fR) یا مشاهده (\f3t\fR) شود\&. اگر گزینه \f3f\fR وجود داشته باشد، تعیین عملوند \fIjarfile\fR الزامی است\&. حذف گزینه \f3f\fR و عملوند \fIjarfile\fR به دستور \f3jar\fR اعلام می‌کند که نام فایل JAR را از \f3stdin\fR دریافت کند (برای \f3x\fR و \f3t\fR) یا فایل JAR\f3\fR را به \f3stdout\fR بفرستد (برای \f3c\fR و \f3u\fR)\&. هنگام ایندکس‌گذاری (\f3i\fR) یک فایل JAR، عملوند \fIjarfile\fR را بدون گزینه \f3f\fR مشخص کنید\&. .TP \fImanifest\fR هنگام ایجاد (\f3c\fR) یا به‌روزرسانی (\f3u\fR) یک فایل JAR، عملوند \fImanifest\fR فایل‌های مانیفست از پیش‌موجود را با نام‌ها و مقادیر مشخصه‌هایی که باید در \f3MANIFEST\&.MF\fR فایل JAR گنجانده شوند، مشخص می‌کند\&. اگر گزینه \f3f\fR وجود داشته باشد، تعیین عملوند \fImanifest\fR الزامی است\&. .TP \fI@arg-file\fR برای کوتاه‌تر یا ساده‌تر کردن دستور \f3jar\fR، می‌توانید آرگومان‌ها را در یک فایل متنی جداگانه مشخص کرده و آن را با پیشوند علامت اتساین (@) به دستور \f3jar\fR ارسال کنید\&. هنگامی که دستور \f3jar\fR با آرگومانی مواجه می‌شود که با علامت اتساین شروع شده است، محتویات آن فایل را به درون فهرست آرگومان‌ها بسط می‌دهد\&. یک فایل آرگومان می‌تواند شامل گزینه‌ها و آرگومان‌های دستور \f3jar\fR باشد (به جز گزینه‌های \f3-J\fR، چرا که آن‌ها به اجراکننده منتقل می‌شوند و اجراکننده از فایل‌های آرگومان پشتیبانی نمی‌کند)\&. آرگومان‌های درون فایل می‌توانند با فاصله یا نویسه‌های خط جدید (newline) از هم جدا شوند\&. نام‌های فایل درون یک فایل آرگومان، نسبت به دایرکتوری جاری که دستور \f3jar\fR را از آن اجرا می‌کنید سنجیده می‌شوند، نه نسبت به مکان قرارگیری فایل آرگومان\&. نویسه‌های عام (wildcard) مانند ستاره (*)، که در شرایط دیگر ممکن است توسط شل سیستم‌عامل بسط یابند، بسط داده نمی‌شوند\&. مثال زیر نشان می‌دهد چگونه می‌توان یک فایل \f3classes\&.list\fR با نام‌های فایل‌های حاصل از خروجی دستور \f3find\fR در دایرکتوری جاری ایجاد کرد: .sp .nf \f3find \&. \-name \&'*\&.class\&' \-print > classes\&.list\fP .fi .nf \f3\fP .fi .sp سپس می‌توانید دستور \f3jar\fR را اجرا کرده و فایل \f3classes\&.list\fR را با استفاده از ساختار نحوی \fI@arg-file\fR به آن ارسال کنید: .sp .nf \f3jar cf my\&.jar @classes\&.list\fP .fi .nf \f3\fP .fi .sp فایل آرگومان می‌تواند همراه با یک مسیر مشخص شود، اما هر نام فایلی درون فایل آرگومان که دارای مسیر نسبی است، نسبت به دایرکتوری کاری جاری دستور \f3jar\fR سنجیده می‌شود، نه نسبت به مسیری که به آن داده شده است؛ برای مثال: .sp .nf \f3jar @dir/classes\&.list\fP .fi .nf \f3\fP .fi .sp .SH "نکات (NOTES)" گزینه‌های \f3e\fR، \f3f\fR و \f3m\fR در خط فرمان باید دقیقاً به همان ترتیبی ظاهر شوند که عملوندهای \fIentrypoint\fR، \fIjarfile\fR و \fImanifest\fR قرار می‌گیرند؛ برای مثال: .sp .nf \f3jar cmef myManifestFile MyMainClass myFile\&.jar *\&.class\fP .fi .nf \f3\fP .fi .sp .SH "مثال‌ها (EXAMPLES)" \f3مثال ۱ افزودن تمام فایل‌ها از دایرکتوری جاری با خروجی پرجزئیات\fR .sp .nf \f3% ls\fP .fi .nf \f31\&.au Animator\&.class monkey\&.jpg\fP .fi .nf \f32\&.au Wave\&.class spacemusic\&.au\fP .fi .nf \f33\&.au at_work\&.gif\fP .fi .nf \f3\fP .fi .nf \f3% jar cvf bundle\&.jar *\fP .fi .nf \f3added manifest\fP .fi .nf \f3adding: 1\&.au(in = 2324) (out= 67)(deflated 97%)\fP .fi .nf \f3adding: 2\&.au(in = 6970) (out= 90)(deflated 98%)\fP .fi .nf \f3adding: 3\&.au(in = 11616) (out= 108)(deflated 99%)\fP .fi .nf \f3adding: Animator\&.class(in = 2266) (out= 66)(deflated 97%)\fP .fi .nf \f3adding: Wave\&.class(in = 3778) (out= 81)(deflated 97%)\fP .fi .nf \f3adding: at_work\&.gif(in = 6621) (out= 89)(deflated 98%)\fP .fi .nf \f3adding: monkey\&.jpg(in = 7667) (out= 91)(deflated 98%)\fP .fi .nf \f3adding: spacemusic\&.au(in = 3079) (out= 73)(deflated 97%)\fP .fi .nf \f3\fP .fi .sp \f3مثال ۲ افزودن فایل‌ها از زیردایرکتوری‌ها\fR .sp .nf \f3% ls \-F\fP .fi .nf \f3audio/ classes/ images/\fP .fi .nf \f3% jar cvf bundle\&.jar audio classes images\fP .fi .nf \f3added manifest\fP .fi .nf \f3adding: audio/(in = 0) (out= 0)(stored 0%)\fP .fi .nf \f3adding: audio/1\&.au(in = 2324) (out= 67)(deflated 97%)\fP .fi .nf \f3adding: audio/2\&.au(in = 6970) (out= 90)(deflated 98%)\fP .fi .nf \f3adding: audio/3\&.au(in = 11616) (out= 108)(deflated 99%)\fP .fi .nf \f3adding: audio/spacemusic\&.au(in = 3079) (out= 73)(deflated 97%)\fP .fi .nf \f3adding: classes/(in = 0) (out= 0)(stored 0%)\fP .fi .nf \f3adding: classes/Animator\&.class(in = 2266) (out= 66)(deflated 97%)\fP .fi .nf \f3adding: classes/Wave\&.class(in = 3778) (out= 81)(deflated 97%)\fP .fi .nf \f3adding: images/(in = 0) (out= 0)(stored 0%)\fP .fi .nf \f3adding: images/monkey\&.jpg(in = 7667) (out= 91)(deflated 98%)\fP .fi .nf \f3adding: images/at_work\&.gif(in = 6621) (out= 89)(deflated 98%)\fP .fi .nf \f3\fP .fi .nf \f3% ls \-F\fP .fi .nf \f3audio/ bundle\&.jar classes/ images/\fP .fi .nf \f3\fP .fi .sp \f3مثال ۳ فهرست کردن محتویات JAR\fR .sp .nf \f3% jar tf bundle\&.jar\fP .fi .sp .sp .nf \f3META\-INF/\fP .fi .nf \f3META\-INF/MANIFEST\&.MF\fP .fi .nf \f3audio/1\&.au\fP .fi .nf \f3audio/2\&.au\fP .fi .nf \f3audio/3\&.au\fP .fi .nf \f3audio/spacemusic\&.au\fP .fi .nf \f3classes/Animator\&.class\fP .fi .nf \f3classes/Wave\&.class\fP .fi .nf \f3images/monkey\&.jpg\fP .fi .nf \f3images/at_work\&.gif\fP .fi .nf \f3\fP .fi .sp \f3مثال ۴ افزودن ایندکس\fR.PP هنگامی که کلاس‌های وابسته به یکدیگر را برای یک برنامه دادوستد سهام به سه فایل JAR تقسیم می‌کنید، از گزینه \f3i\fR استفاده کنید: \f3main\&.jar\fR، \f3buy\&.jar\fR، و \f3sell\&.jar\fR\&. اگر صفت \f3Class-Path\fR را در مانیفست \f3main\&.jar\fR مشخص کنید، می‌توانید از گزینه \f3i\fR برای افزایش سرعت بارگذاری کلاس در برنامه خود استفاده کنید: .sp .nf \f3Class\-Path: buy\&.jar sell\&.jar\fP .fi .nf \f3jar i main\&.jar\fP .fi .nf \f3\fP .fi .sp یک فایل \f3INDEX\&.LIST\fR در دایرکتوری \f3META-INF\fR درج می‌شود\&. این کار به بارگذار کلاس برنامه امکان می‌دهد تا هنگام جستجو به دنبال کلاس‌ها یا منابع، فایل‌های JAR مشخص‌شده را بارگیری کند\&. .PP بارگذار کلاس برنامه از اطلاعات ذخیره‌شده در این فایل برای بارگذاری کارآمد کلاس‌ها استفاده می‌کند\&. برای رونوشت دایرکتوری‌ها، ابتدا فایل‌های موجود در \f3dir1\fR را به \f3stdout\fR فشرده کرده، سپس از طریق خط لوله، آن‌ها را از \f3stdin\fR در \f3dir2\fR استخراج کنید (با حذف گزینه \f3-f\fR از هر دو دستور \f3jar\fR): .sp .nf \f3(cd dir1; jar c \&.) | (cd dir2; jar x)\fP .fi .nf \f3\fP .fi .sp .SH "همچنین ببینید (SEE ALSO)" .TP 0.2i \(bu pack200(1)\&. .TP 0.2i \(bu بخش JAR در The Java Tutorials در http://docs\&.oracle\&.com/javase/tutorial/deployment/jar/index\&.html .RE .br 'pl 8.5i 'bp