'\" 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 \- بسته‌بندی فایل‌های JAR در یک فایل فشردهٔ pack200 برای استقرار تحت وب\&. .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fBpack200\fR [\fIoptions\fR] \fIoutput\-file\fR \fIJAR\-file\fR .fi .sp گزینه‌ها می‌توانند به هر ترتیبی باشند\&. آخرین گزینه در خط فرمان یا در فایل تنظیمات (properties)، بر تمام گزینه‌های مشخص‌شدهٔ قبلی اولویت دارد\&. .TP \fIoptions\fR گزینه‌های خط فرمان\&. بخش «گزینه‌ها» را ببینید\&. .TP \fIoutput-file\fR نام فایل خروجی\&. .TP \fIJAR-file\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 ویژگی‌های اشکال‌زدایی (debugging) را از خروجی حذف می‌کند\&. این موارد شامل \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\fIvalue\fR , --segment-limit=\fIvalue\fR .br این مقدار، اندازهٔ هدف تخمینی \fIN\fR (به بایت) برای هر بخش (segment) آرشیو است\&. اگر یک فایل ورودی به تنهایی به بیش از \fIN\fR بایت نیاز داشته باشد، بخش آرشیو اختصاصی خود را دریافت می‌کند\&. به‌عنوان یک حالت خاص، مقدار \f3-1\fR یک بخش بزرگ واحد شامل تمام فایل‌های ورودی تولید می‌کند، در حالی که مقدار 0 برای هر کلاس یک بخش ایجاد می‌کند\&. بخش‌های آرشیو بزرگ‌تر منجر به قطعه‌قطعه‌شدن کمتر و فشرده‌سازی بهتر می‌شوند، اما پردازش آن‌ها نیازمند حافظهٔ بیشتری است\&. اندازهٔ هر بخش با محاسبهٔ اندازهٔ هر فایل ورودیِ منتقل‌شونده در آن بخش، به‌همراه اندازهٔ نام و سایر ویژگی‌های انتقال‌یافتهٔ آن تخمین زده می‌شود\&. پیش‌فرض برابر -1 است، به این معنی که بسته‌بند یک فایل خروجی تک‌بخشی ایجاد می‌کند\&. در مواردی که فایل‌های خروجی بسیار بزرگی تولید می‌شوند، قویاً به کاربران توصیه می‌شود از بخش‌بندی استفاده کنند یا فایل ورودی را به فایل‌های JAR کوچک‌تر بشکنند\&. یک فایل JAR با حجم ۱۰ مگابایت که بدون این محدودیت بسته‌بندی شود، معمولاً حدود ۱۰ درصد کوچک‌تر فشرده می‌شود، اما ممکن است بسته‌بند به حافظهٔ هیپ جاوا (Java heap) بزرگ‌تری نیاز داشته باشد (حدود ۱۰ برابر محدودیت بخش)\&. .TP -E\fIvalue\fR , --effort=\fIvalue\fR .br اگر مقدار روی یک رقم اعشاری تنظیم شود، بسته‌بند از میزان تلاش مشخص‌شده برای فشرده‌سازی آرشیو استفاده می‌کند\&. سطح ۱ ممکن است حجمی کمی بزرگ‌تر و سرعت فشرده‌سازی بالاتری تولید کند، در حالی که سطح ۹ زمان بسیار بیشتری می‌برد، اما فشرده‌سازی بهتری ارائه می‌دهد\&. مقدار ویژهٔ 0 به دستور \f3pack200\fR دستور می‌دهد تا فایل JAR اصلی را مستقیماً و بدون هیچ فشرده‌سازی کپی کند\&. استاندارد JSR 200 مستلزم آن است که هر ابزار بازکننده (unpacker) این حالت خاص را به‌منزلهٔ عبور مستقیم کل آرشیو بشناسد\&. پیش‌فرض برابر 5 است، تا با صرف زمانی معقول، فشرده‌سازی مناسبی حاصل شود\&. .TP -H\fIvalue\fR , --deflate-hint=\fIvalue\fR .br رفتار پیش‌فرض را که اطلاعات ورودی را حفظ می‌کند اما می‌تواند منجر به بزرگ‌تر شدن آرشیو انتقالی شود، بازنویسی می‌کند\&. مقادیر ممکن عبارت‌اند از: \f3true\fR، \f3false\fR، یا \f3keep\fR\&. اگر \f3value\fR برابر \f3true\fR یا false باشد، دستور \f3pack200\fR راهنمای فشرده‌سازی (deflation hint) را بر همین اساس در آرشیو خروجی تنظیم کرده و راهنماهای فشرده‌سازی تکیِ عناصر آرشیو را انتقال نمی‌دهد\&. مقدار \f3keep\fR راهنماهای فشرده‌سازی دیده‌شده در JAR ورودی را حفظ می‌کند\&. این رفتار پیش‌فرض است\&. .TP -m\fIvalue\fR , --modification-time=\fIvalue\fR .br مقادیر ممکن عبارت‌اند از \f3latest\fR و \f3keep\fR\&. اگر مقدار برابر latest باشد، بسته‌بند تلاش می‌کند آخرین زمان تغییر را در میان تمام مدخل‌های موجود در آرشیو اصلی، یا آخرین زمان تغییر تمامی مدخل‌های موجود در آن بخش را تعیین کند\&. این مقدار واحد به‌عنوان بخشی از قطعه منتقل شده و به تمامی مدخل‌های هر بخش اعمال می‌شود\&. این کار می‌تواند حجم انتقالی آرشیو را اندکی کاهش دهد، به این قیمت که تاریخ تمامی فایل‌های نصب‌شده به یک تاریخ واحد تبدیل می‌شود\&. اگر مقدار برابر \f3keep\fR باشد، زمان‌های تغییر مشاهده‌شده در JAR ورودی حفظ می‌شوند\&. این مقدار پیش‌فرض است\&. .TP -P\fIfile\fR , --pass-file=\fIfile\fR .br نشان می‌دهد که یک فایل باید به‌صورت بایت‌به‌بایت و بدون فشرده‌سازی عبور داده شود\&. با تکرار این گزینه، می‌توان چندین فایل را مشخص کرد\&. هیچ تغییری در مسیر اعمال نمی‌شود، مگر اینکه جداکنندهٔ فایل‌های سیستم با جداکنندهٔ فایل‌های JAR یعنی اسلش (/) جایگزین شود\&. نام‌های فایل حاصل باید به‌صورت دقیق به‌عنوان رشته با موارد مشابه خود در فایل JAR مطابقت داشته باشند\&. اگر \f3file\fR نام یک پوشه باشد، تمام فایل‌های زیر آن پوشه عبور داده می‌شوند\&. .TP -U\fIaction\fR , --unknown-attribute=\fIaction\fR .br رفتار پیش‌فرض را بازنویسی می‌کند، بدین معنا که فایل کلاسی که شامل ویژگی ناشناخته است با \f3action\fR مشخص‌شده پردازش می‌شود\&. مقادیر ممکن برای عملیات عبارت‌اند از \f3error\fR، \f3strip\fR، یا \f3pass\fR\&. اگر مقدار برابر \f3error\fR باشد، کل عملیات دستور \f3pack200\fR با توضیحی مناسب با شکست مواجه می‌شود\&. اگر مقدار برابر \f3strip\fR باشد، ویژگی حذف می‌شود\&. حذف ویژگی‌های مورد نیاز ماشین مجازی جاوا (JVM) می‌تواند باعث خطاهای بارگذار کلاس (class loader) شود\&. اگر مقدار برابر \f3pass\fR باشد، کل کلاس طوری منتقل می‌شود که گویی یک منبع (resource) است\&. .TP .nf -C\fIattribute-name\fR=\fIlayout\fR , --class-attribute=\fIattribute-name\fR=\fIaction\fR .br .fi گزینهٔ بعدی را ببینید\&. .TP .nf -F\fIattribute-name\fR=\fIlayout\fR , --field-attribute=\fIattribute-name\fR=\fIaction\fR .br .fi گزینهٔ بعدی را ببینید\&. .TP .nf -M\fIattribute-name\fR=\fIlayout\fR , --method-attribute=\fIattribute-name\fR=\fIaction\fR .br .fi گزینهٔ بعدی را ببینید\&. .TP .nf -D\fIattribute-name\fR=\fIlayout\fR , --code-attribute=\fIattribute-name\fR=\fIaction\fR .br .fi با چهار گزینهٔ قبلی، ساختار ویژگی (layout) را می‌توان برای یک موجودیت کلاس مشخص کرد، مانند \f3class-attribute\fR، \f3field-attribute\fR، \f3method-attribute\fR، و \f3code-attribute\fR\&. مقدار \fIattribute-name\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# Generic properties for the packer\&.\fP .fi .nf \f3modification\&.time=latest\fP .fi .nf \f3deflate\&.hint=false\fP .fi .nf \f3keep\&.file\&.order=false\fP .fi .nf \f3# This option will cause the files bearing new attributes to\fP .fi .nf \f3# be reported as an error rather than passed uncompressed\&.\fP .fi .nf \f3unknown\&.attribute=error\fP .fi .nf \f3# Change the segment limit to be unlimited\&.\fP .fi .nf \f3segment\&.limit=\-1\fP .fi .nf \f3\fP .fi .sp .TP -v, --verbose .br پیام‌های خروجی را با جزئیات کم نمایش می‌دهد\&. تکرار مشخص کردن این گزینه پیام‌های پرحرف‌تر و دقیق‌تری ایجاد می‌کند\&. .TP -q, --quiet .br عملیات خاموش و بدون پیام را تعیین می‌کند\&. .TP -l\fIfilename\fR , --log-file=\fIfilename\fR .br یک فایل لاگ را برای ارسال خروجی پیام‌ها تعیین می‌کند\&. .TP -?, -h, --help .br اطلاعات راهنمای این دستور را چاپ می‌کند\&. .TP -V, --version .br اطلاعات نسخهٔ این دستور را چاپ می‌کند\&. .TP -J\fIoption\fR .br گزینهٔ مشخص‌شده را به ماشین مجازی جاوا (JVM) ارسال می‌کند\&. برای اطلاعات بیشتر، صفحهٔ راهنمای دستور \f3java\fR(1) را ببینید\&. برای مثال، \f3-J-Xms48m\fR حافظهٔ راه‌اندازی را روی ۴۸ مگابایت تنظیم می‌کند\&. .SH "وضعیت خروج (EXIT STATUS)" مقدارهای خروج زیر بازگردانده می‌شوند: 0 برای اتمام موفقیت‌آمیز، و عددی بزرگ‌تر از 0 هنگام وقوع خطا\&. .SH "نکات (NOTES)" این دستور نباید با \f3pack\fR(1) اشتباه گرفته شود\&. دستورهای \f3pack\fR و \f3pack200\fR ابزارهایی جداگانه هستند\&. .PP در صورت وجود هرگونه مغایرت، مشخصات Java SE API ارائه‌شده همراه با 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