'\" t .\" Copyright (c) 2004, 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: Java Deployment Tools .\" Title: pack200.1 .\" .if n .pl 99999 .TH pack200 1 "21 November 2013" "JDK 8" "Java Deployment 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)" pack200-openjdk8 \- ابزار فشرده‌سازی فایل‌های JAR در جاوا ۸ .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fBpack200\fR [\fIگزینه‌ها\fR] \fIفایل\-خروجی\fR \fIفایل\-JAR\fR .fi .sp ترتیب قرارگیری گزینه‌ها اهمیتی ندارد\&. آخرین گزینه مشخص‌شده در خط فرمان یا در فایل ویژگی‌ها (properties)، بر تمام گزینه‌های پیشین اولویت دارد\&. .TP \fIگزینه‌ها\fR گزینه‌های خط فرمان\&. بخش «گزینه‌ها» را ببینید\&. .TP \fIفایل-خروجی\fR نام فایل خروجی\&. .TP \fIفایل-JAR\fR نام فایل ورودی\&. .SH "توضیحات (DESCRIPTION)" دستور \f3pack200\fR یک برنامه جاوا است که یک فایل JAR را با استفاده از فشرده‌ساز gzip جاوا به یک فایل فشرده pack200 تبدیل می‌کند\&. فایل‌های pack200 فایل‌هایی با فشردگی بالا هستند که می‌توان مستقیماً برای صرفه‌جویی در پهنای باند و کاهش زمان بارگیری آن‌ها را مستقر کرد\&. .PP دستور \f3pack200\fR گزینه‌های متعددی برای تنظیم دقیق موتور فشرده‌سازی دارد\&. کاربرد متداول آن در مثال زیر نشان داده شده است که در آن \f3myarchive\&.pack\&.gz\fR با تنظیمات پیش‌فرض دستور \f3pack200\fR تولید می‌شود: .sp .nf \f3pack200 myarchive\&.pack\&.gz myarchive\&.jar\fP .fi .nf \f3\fP .fi .sp .SH "گزینه‌ها (OPTIONS)" .TP -r, --repack .br یک فایل JAR را با بسته‌بندی و سپس بازگشایی مجدد یک فایل JAR تولید می‌کند\&. فایل حاصل را می‌توان به عنوان ورودی ابزار \f3jarsigner\fR(1) استفاده کرد\&. مثال زیر فایل myarchive\&.jar را بسته‌بندی و مجدداً باز می‌کند: .sp .nf \f3pack200 \-\-repack myarchive\-packer\&.jar myarchive\&.jar\fP .fi .nf \f3pack200 \-\-repack myarchive\&.jar\fP .fi .nf \f3\fP .fi .sp مثال زیر ترتیب فایل‌ها را در فایل ورودی حفظ می‌کند\&. .TP -g, --no-gzip .br یک فایل \f3pack200\fR تولید می‌کند\&. با استفاده از این گزینه، باید از یک فشرده‌ساز مناسب استفاده شود و سیستم مقصد نیز باید از یک بازگشاینده متناظر استفاده کند\&. .sp .nf \f3pack200 \-\-no\-gzip myarchive\&.pack myarchive\&.jar\fP .fi .nf \f3\fP .fi .sp .TP -G, --strip-debug .br ویژگی‌های اشکال‌زدایی را از خروجی حذف می‌کند\&. این موارد شامل \f3SourceFile\fR، \f3LineNumberTable\fR، \f3LocalVariableTable\fR و \f3LocalVariableTypeTable\fR می‌شوند\&. حذف این ویژگی‌ها حجم بارگیری و نصب را کاهش می‌دهد، اما کارایی ابزارهای اشکال‌زدایی را کم می‌کند\&. .TP --keep-file-order .br ترتیب فایل‌ها را در فایل ورودی حفظ می‌کند\&. این رفتار پیش‌فرض است\&. .TP -O, --no-keep-file-order .br بسته‌بند، تمام عناصر را بازآرایی کرده و منتقل می‌کند\&. بسته‌بند همچنین می‌تواند نام دایرکتوری‌های JAR را برای کاهش اندازه بارگیری حذف کند\&. با این حال، ممکن است برخی بهینه‌سازی‌های فایل JAR مانند نمایه‌سازی (indexing) به درستی کار نکنند\&. .TP -S\fIمقدار\fR , --segment-limit=\fIمقدار\fR .br مقدار، اندازه تخمینی هدف \fIN\fR (به بایت) برای هر بخش آرشیو است\&. اگر یک فایل ورودی منفرد به بیش از \fIN\fR بایت نیاز داشته باشد، بخش آرشیو اختصاصی خود را دریافت می‌کند\&. به عنوان یک حالت خاص، مقدار \f3-1\fR یک بخش بزرگ واحد شامل تمام فایل‌های ورودی تولید می‌کند، در حالی که مقدار 0 برای هر کلاس یک بخش تولید می‌نماید\&. بخش‌های آرشیو بزرگ‌تر منجر به تکه‌تکه‌شدن کمتر و فشرده‌سازی بهتر می‌شوند، اما پردازش آن‌ها به حافظه بیشتری نیاز دارد\&. اندازه هر بخش با شمارش اندازه هر فایل ورودیِ منتقل‌شده در آن بخش، به همراه اندازه نام آن و سایر ویژگی‌های منتقل‌شده تخمین زده می‌شود\&. مقدار پیش‌فرض -1 است، به این معنی که بسته‌بند یک فایل خروجی تک‌بخشی ایجاد می‌کند\&. در مواردی که فایل‌های خروجی بسیار بزرگ تولید می‌شوند، به کاربران اکیداً توصیه می‌شود از بخش‌بندی استفاده کنند یا فایل ورودی را به JARهای کوچک‌تر تقسیم نمایند\&. یک فایل JAR ده مگابایتی که بدون این محدودیت بسته‌بندی شود معمولاً حدود ۱۰ درصد کوچک‌تر فشرده می‌شود، اما ممکن است بسته‌بند به حافظه هیپ (Java heap) بزرگ‌تری (حدود ۱۰ برابر محدودیت بخش) نیاز داشته باشد\&. .TP -E\fIمقدار\fR , --effort=\fIمقدار\fR .br اگر مقدار روی یک رقم تک‌رقمی ده‌دهی تنظیم شود، بسته‌بند میزان تلاش مشخص‌شده را برای فشرده‌سازی آرشیو به کار می‌گیرد\&. سطح ۱ ممکن است حجم کمی بزرگ‌تر و سرعت فشرده‌سازی بالاتری داشته باشد، در حالی که سطح ۹ زمان بسیار بیشتری می‌برد اما فشرده‌سازی بهتری ارائه می‌دهد\&. مقدار خاص 0 به دستور \f3pack200\fR دستور می‌دهد که فایل JAR اصلی را مستقیماً و بدون هیچ فشرده‌سازی کپی کند\&. استاندارد JSR 200 ایجاب می‌کند که هر ابزار unpacker این حالت خاص را به عنوان انتقال مستقیم کل آرشیو بشناسد\&. مقدار پیش‌فرض ۵ است تا با صرف زمانی متعادل، فشرده‌سازی مناسبی حاصل شود\&. .TP -H\fIمقدار\fR , --deflate-hint=\fIمقدار\fR .br رفتار پیش‌فرض را که اطلاعات ورودی را حفظ می‌کند لغو می‌نماید، اما می‌تواند موجب بزرگ‌تر شدن آرشیو منتقل‌شده گردد\&. مقادیر مجاز عبارتند از: \f3true\fR، \f3false\fR یا \f3keep\fR\&. اگر \f3مقدار\fR برابر \f3true\fR یا false باشد، دستور \f3pack200\fR نشانه کاهش حجم (deflation hint) را متناسب با آن در آرشیو خروجی تنظیم کرده و نشانه‌های کاهش حجم جداگانه عناصر آرشیو را منتقل نمی‌کند\&. مقدار \f3keep\fR نشانه‌های کاهش حجم دیده‌شده در JAR ورودی را حفظ می‌کند\&. این گزینه پیش‌فرض است\&. .TP -m\fIمقدار\fR , --modification-time=\fIمقدار\fR .br مقادیر مجاز عبارتند از \f3latest\fR و \f3keep\fR\&. اگر مقدار برابر latest باشد، بسته‌بند تلاش می‌کند آخرین زمان تغییر را در میان تمام مدخل‌های موجود در آرشیو اصلی، یا آخرین زمان تغییر تمام مدخل‌های موجود در آن بخش را تعیین کند\&. این مقدار واحد به عنوان بخشی از بخش منتقل شده و روی تمام مدخل‌های موجود در هر بخش اعمال می‌شود\&. این کار می‌تواند حجم آرشیو منتقل‌شده را اندکی کاهش دهد، به قیمت اینکه تاریخ تمام فایل‌های نصب‌شده روی یک تاریخ واحد تنظیم شود\&. اگر مقدار برابر \f3keep\fR باشد، زمان‌های تغییر مشاهده‌شده در JAR ورودی حفظ می‌شوند\&. این گزینه پیش‌فرض است\&. .TP -P\fIفایل\fR , --pass-file=\fIفایل\fR .br مشخص می‌کند که یک فایل باید به صورت بایت‌به‌بایت و بدون فشرده‌سازی منتقل شود\&. با تکرار این گزینه، می‌توان چندین فایل را مشخص کرد\&. هیچ تغییری در مسیر فایل رخ نمی‌دهد، به جز اینکه جداکننده فایل سیستم با جداکننده فایل JAR یعنی اسلش (/) جایگزین می‌شود\&. نام فایل‌های حاصل باید دقیقاً به صورت رشته‌ای با موارد موجود در فایل JAR مطابقت داشته باشد\&. اگر \f3فایل\fR نام یک دایرکتوری باشد، تمام فایل‌های زیر آن دایرکتوری بدون فشرده‌سازی منتقل می‌شوند\&. .TP -U\fIعمل\fR , --unknown-attribute=\fIعمل\fR .br رفتار پیش‌فرض را بازنویسی می‌کند، به این معنی که فایل کلاس حاوی ویژگی ناشناخته، با \f3عمل\fR مشخص‌شده پردازش می‌شود\&. مقادیر ممکن برای عملیات عبارتند از \f3error\fR، \f3strip\fR یا \f3pass\fR\&. اگر مقدار برابر \f3error\fR باشد، کل عملیات دستور \f3pack200\fR همراه با توضیح مناسب با شکست مواجه می‌شود\&. اگر مقدار برابر \f3strip\fR باشد، ویژگی مورد نظر حذف می‌شود\&. حذف ویژگی‌های مورد نیاز ماشین مجازی جاوا (JVM) می‌تواند منجر به خطای بارگذار کلاس (class loader) شود\&. اگر مقدار برابر \f3pass\fR باشد، کل کلاس به گونه‌ای منتقل می‌شود که گویی یک منبع (resource) معمولی است\&. .TP .nf -C\fIname\fR=\fIlayout\fR , --class-attribute=\fIname\fR=\fIaction\fR .br .fi گزینه بعدی را ببینید\&. .TP .nf -F\fIname\fR=\fIlayout\fR , --field-attribute=\fIname\fR=\fIaction\fR .br .fi گزینه بعدی را ببینید\&. .TP .nf -M\fIname\fR=\fIlayout\fR , --method-attribute=\fIname\fR=\fIaction\fR .br .fi گزینه بعدی را ببینید\&. .TP .nf -D\fIname\fR=\fIlayout\fR , --code-attribute=\fIname\fR=\fIaction\fR .br .fi با چهار گزینه پیشین، می‌توان قالب ویژگی را برای یک موجودیت کلاسی مانند \f3class-attribute\fR، \f3field-attribute\fR، \f3method-attribute\fR و \f3code-attribute\fR مشخص کرد\&. عبارت \fIname\fR نام ویژگی‌ای است که قالب یا عمل برای آن تعریف می‌شود\&. مقادیر ممکن برای \fIaction\fR عبارتند از \f3some-layout-string\fR، \f3error\fR، \f3strip\fR و \f3pass\fR\&. \f3some-layout-string\fR: زبان قالب‌بندی در مشخصات JSR 200 تعریف شده است، برای مثال: \f3--class-attribute=SourceFile=RUH\fR\&. اگر مقدار برابر \f3error\fR باشد، عملیات \f3pack200\fR با توضیح با خطا متوقف می‌شود\&. اگر مقدار برابر \f3strip\fR باشد، ویژگی از خروجی حذف می‌شود\&. حذف ویژگی‌های مورد نیاز JVM می‌تواند باعث خطای بارگذار کلاس شود\&. برای مثال، \f3--class-attribute=CompilationID=pass\fR باعث می‌شود فایل کلاسی که حاوی این ویژگی است، بدون هیچ اقدام دیگری توسط بسته‌بند منتقل شود\&. اگر مقدار برابر \f3pass\fR باشد، کل کلاس مانند یک منبع معمولی منتقل می‌گردد\&. .TP -f \fIpack\&.properties\fR , --config-file=\fIpack\&.properties\fR .br می‌توان یک فایل پیکربندی حاوی ویژگی‌های جاوا را برای مقداردهی اولیه بسته‌بند در خط فرمان مشخص کرد\&. .sp .nf \f3pack200 \-f pack\&.properties myarchive\&.pack\&.gz myarchive\&.jar\fP .fi .nf \f3more pack\&.properties\fP .fi .nf \f3# ویژگی‌های عمومی برای بسته‌بند\&.\fP .fi .nf \f3modification\&.time=latest\fP .fi .nf \f3deflate\&.hint=false\fP .fi .nf \f3keep\&.file\&.order=false\fP .fi .nf \f3# این گزینه باعث می‌شود فایل‌های دارای ویژگی‌های جدید به عنوان خطا\fP .fi .nf \f3# گزارش شوند نه اینکه به صورت فشرده‌نشده منتقل گردند\&.\fP .fi .nf \f3unknown\&.attribute=error\fP .fi .nf \f3# نامحدود کردن سقف بخش\&.\fP .fi .nf \f3segment\&.limit=\-1\fP .fi .nf \f3\fP .fi .sp .TP -v, --verbose .br پیام‌های جزئی را در خروجی چاپ می‌کند\&. مشخص کردن چندباره این گزینه پیام‌های مشروح‌تری ایجاد می‌نماید\&. .TP -q, --quiet .br عملکرد بی‌صدا و بدون چاپ هیچ پیامی را تعیین می‌کند\&. .TP -l\fIنام‌فایل\fR , --log-file=\fIنام‌فایل\fR .br یک فایل گزارش (log) را برای خروجی پیام‌ها تعیین می‌کند\&. .TP -?, -h, --help .br اطلاعات راهنمای این دستور را چاپ می‌کند\&. .TP -V, --version .br اطلاعات نسخه این دستور را چاپ می‌کند\&. .TP -J\fIگزینه\fR .br گزینه مشخص‌شده را به ماشین مجازی جاوا منتقل می‌کند\&. برای اطلاعات بیشتر، صفحه راهنمای دستور java(1) را ببینید\&. برای مثال، \f3-J-Xms48m\fR حافظه راه‌اندازی را روی ۴۸ مگابایت تنظیم می‌کند\&. .SH "وضعیت خروج (EXIT STATUS)" مقادیر خروج زیر برگردانده می‌شوند: 0 در صورت اتمام موفقیت‌آمیز و عددی بزرگ‌تر از 0 در صورت بروز خطا\&. .SH "نکات (NOTES)" این دستور نباید با \f3pack\fR(1) اشتباه گرفته شود\&. دستورات \f3pack\fR و \f3pack200\fR دو محصول جداگانه هستند\&. .PP مشخصات API ویرایش Java SE ارائه‌شده به همراه JDK، در صورت وجود هرگونه مغایرت، مرجع حاکم و نهایی است\&. .SH "همچنین ببینید (SEE ALSO)" .TP 0.2i \(bu unpack200(1) .TP 0.2i \(bu jar(1) .TP 0.2i \(bu jarsigner(1) .RE .br 'pl 8.5i 'bp