pack200(1) Java Deployment Tools pack200(1) نام (NAME) pack200 - بسته‌بندی فایل‌های JAR در یک فایل فشردهٔ pack200 برای استقرار تحت وب. خلاصه دستور (SYNOPSIS) pack200 [options] output-file JAR-file گزینه‌ها می‌توانند به هر ترتیبی باشند. آخرین گزینه در خط فرمان یا در فایل تنظیمات (properties)، بر تمام گزینه‌های مشخص‌شدهٔ قبلی اولویت دارد. options گزینه‌های خط فرمان. بخش «گزینه‌ها» را ببینید. output-file نام فایل خروجی. JAR-file نام فایل ورودی. توضیحات (DESCRIPTION) دستور pack200 یک برنامهٔ جاوا است که یک فایل JAR را با فشرده‌ساز gzip جاوا به یک فایل فشردهٔ pack200 تبدیل می‌کند. فایل‌های pack200 فایل‌هایی بسیار فشرده هستند که می‌توان آن‌ها را مستقیماً برای صرفه‌جویی در پهنای باند و کاهش زمان بارگیری مستقر کرد. دستور pack200 گزینه‌های متعددی برای تنظیم دقیق و پیکربندی موتور فشرده‌سازی دارد. کاربرد معمول آن در مثال زیر نشان داده شده است، جایی که myarchive.pack.gz با تنظیمات پیش‌فرض دستور pack200 تولید می‌شود: pack200 myarchive.pack.gz myarchive.jar گزینه‌ها (OPTIONS) -r, --repack با فشرده‌سازی و سپس استخراج یک فایل JAR، یک فایل JAR جدید تولید می‌کند. فایل حاصل می‌تواند به‌عنوان ورودی برای ابزار jarsigner(1) استفاده شود. مثال زیر فایل myarchive.jar را فشرده و مجدداً باز می‌کند: pack200 --repack myarchive-packer.jar myarchive.jar pack200 --repack myarchive.jar مثال زیر ترتیب فایل‌ها را در فایل ورودی حفظ می‌کند. -g, --no-gzip یک فایل pack200 تولید می‌کند. با این گزینه، باید از یک فشرده‌ساز مناسب استفاده شود، و سیستم مقصد نیز باید از یک بازکنندهٔ متناظر استفاده نماید. pack200 --no-gzip myarchive.pack myarchive.jar -G, --strip-debug ویژگی‌های اشکال‌زدایی (debugging) را از خروجی حذف می‌کند. این موارد شامل SourceFile، LineNumberTable، LocalVariableTable و LocalVariableTypeTable هستند. حذف این ویژگی‌ها اندازهٔ بارگیری و نصب را کاهش می‌دهد، اما کارایی ابزارهای اشکال‌زدایی را کم می‌کند. --keep-file-order ترتیب فایل‌ها را در فایل ورودی حفظ می‌کند. این رفتار پیش‌فرض است. -O, --no-keep-file-order بسته‌بند تمام عناصر را بازترتیب داده و منتقل می‌کند. همچنین بسته‌بند می‌تواند نام پوشه‌های JAR را برای کاهش اندازهٔ بارگیری حذف کند. با این حال، ممکن است برخی بهینه‌سازی‌های فایل JAR مانند نمایه‌سازی (indexing) به‌درستی کار نکنند. -Svalue , --segment-limit=value این مقدار، اندازهٔ هدف تخمینی N (به بایت) برای هر بخش (segment) آرشیو است. اگر یک فایل ورودی به تنهایی به بیش از N بایت نیاز داشته باشد، بخش آرشیو اختصاصی خود را دریافت می‌کند. به‌عنوان یک حالت خاص، مقدار -1 یک بخش بزرگ واحد شامل تمام فایل‌های ورودی تولید می‌کند، در حالی که مقدار 0 برای هر کلاس یک بخش ایجاد می‌کند. بخش‌های آرشیو بزرگ‌تر منجر به قطعه‌قطعه‌شدن کمتر و فشرده‌سازی بهتر می‌شوند، اما پردازش آن‌ها نیازمند حافظهٔ بیشتری است. اندازهٔ هر بخش با محاسبهٔ اندازهٔ هر فایل ورودیِ منتقل‌شونده در آن بخش، به‌همراه اندازهٔ نام و سایر ویژگی‌های انتقال‌یافتهٔ آن تخمین زده می‌شود. پیش‌فرض برابر -1 است، به این معنی که بسته‌بند یک فایل خروجی تک‌بخشی ایجاد می‌کند. در مواردی که فایل‌های خروجی بسیار بزرگی تولید می‌شوند، قویاً به کاربران توصیه می‌شود از بخش‌بندی استفاده کنند یا فایل ورودی را به فایل‌های JAR کوچک‌تر بشکنند. یک فایل JAR با حجم ۱۰ مگابایت که بدون این محدودیت بسته‌بندی شود، معمولاً حدود ۱۰ درصد کوچک‌تر فشرده می‌شود، اما ممکن است بسته‌بند به حافظهٔ هیپ جاوا (Java heap) بزرگ‌تری نیاز داشته باشد (حدود ۱۰ برابر محدودیت بخش). -Evalue , --effort=value اگر مقدار روی یک رقم اعشاری تنظیم شود، بسته‌بند از میزان تلاش مشخص‌شده برای فشرده‌سازی آرشیو استفاده می‌کند. سطح ۱ ممکن است حجمی کمی بزرگ‌تر و سرعت فشرده‌سازی بالاتری تولید کند، در حالی که سطح ۹ زمان بسیار بیشتری می‌برد، اما فشرده‌سازی بهتری ارائه می‌دهد. مقدار ویژهٔ 0 به دستور pack200 دستور می‌دهد تا فایل JAR اصلی را مستقیماً و بدون هیچ فشرده‌سازی کپی کند. استاندارد JSR 200 مستلزم آن است که هر ابزار بازکننده (unpacker) این حالت خاص را به‌منزلهٔ عبور مستقیم کل آرشیو بشناسد. پیش‌فرض برابر 5 است، تا با صرف زمانی معقول، فشرده‌سازی مناسبی حاصل شود. -Hvalue , --deflate-hint=value رفتار پیش‌فرض را که اطلاعات ورودی را حفظ می‌کند اما می‌تواند منجر به بزرگ‌تر شدن آرشیو انتقالی شود، بازنویسی می‌کند. مقادیر ممکن عبارت‌اند از: true، false، یا keep. اگر value برابر true یا false باشد، دستور pack200 راهنمای فشرده‌سازی (deflation hint) را بر همین اساس در آرشیو خروجی تنظیم کرده و راهنماهای فشرده‌سازی تکیِ عناصر آرشیو را انتقال نمی‌دهد. مقدار keep راهنماهای فشرده‌سازی دیده‌شده در JAR ورودی را حفظ می‌کند. این رفتار پیش‌فرض است. -mvalue , --modification-time=value مقادیر ممکن عبارت‌اند از latest و keep. اگر مقدار برابر latest باشد، بسته‌بند تلاش می‌کند آخرین زمان تغییر را در میان تمام مدخل‌های موجود در آرشیو اصلی، یا آخرین زمان تغییر تمامی مدخل‌های موجود در آن بخش را تعیین کند. این مقدار واحد به‌عنوان بخشی از قطعه منتقل شده و به تمامی مدخل‌های هر بخش اعمال می‌شود. این کار می‌تواند حجم انتقالی آرشیو را اندکی کاهش دهد، به این قیمت که تاریخ تمامی فایل‌های نصب‌شده به یک تاریخ واحد تبدیل می‌شود. اگر مقدار برابر keep باشد، زمان‌های تغییر مشاهده‌شده در JAR ورودی حفظ می‌شوند. این مقدار پیش‌فرض است. -Pfile , --pass-file=file نشان می‌دهد که یک فایل باید به‌صورت بایت‌به‌بایت و بدون فشرده‌سازی عبور داده شود. با تکرار این گزینه، می‌توان چندین فایل را مشخص کرد. هیچ تغییری در مسیر اعمال نمی‌شود، مگر اینکه جداکنندهٔ فایل‌های سیستم با جداکنندهٔ فایل‌های JAR یعنی اسلش (/) جایگزین شود. نام‌های فایل حاصل باید به‌صورت دقیق به‌عنوان رشته با موارد مشابه خود در فایل JAR مطابقت داشته باشند. اگر file نام یک پوشه باشد، تمام فایل‌های زیر آن پوشه عبور داده می‌شوند. -Uaction , --unknown-attribute=action رفتار پیش‌فرض را بازنویسی می‌کند، بدین معنا که فایل کلاسی که شامل ویژگی ناشناخته است با action مشخص‌شده پردازش می‌شود. مقادیر ممکن برای عملیات عبارت‌اند از error، strip، یا pass. اگر مقدار برابر error باشد، کل عملیات دستور pack200 با توضیحی مناسب با شکست مواجه می‌شود. اگر مقدار برابر strip باشد، ویژگی حذف می‌شود. حذف ویژگی‌های مورد نیاز ماشین مجازی جاوا (JVM) می‌تواند باعث خطاهای بارگذار کلاس (class loader) شود. اگر مقدار برابر pass باشد، کل کلاس طوری منتقل می‌شود که گویی یک منبع (resource) است. -Cattribute-name=layout , --class-attribute=attribute-name=action گزینهٔ بعدی را ببینید. -Fattribute-name=layout , --field-attribute=attribute-name=action گزینهٔ بعدی را ببینید. -Mattribute-name=layout , --method-attribute=attribute-name=action گزینهٔ بعدی را ببینید. -Dattribute-name=layout , --code-attribute=attribute-name=action با چهار گزینهٔ قبلی، ساختار ویژگی (layout) را می‌توان برای یک موجودیت کلاس مشخص کرد، مانند class-attribute، field-attribute، method-attribute، و code-attribute. مقدار attribute-name نام ویژگی‌ای است که ساختار یا عملیات برای آن تعریف می‌شود. مقادیر ممکن برای action عبارت‌اند از some-layout-string، error، strip، و pass. some-layout-string: زبان تعریف ساختار در مشخصات JSR 200 تعریف شده است، برای نمونه: --class-attribute=SourceFile=RUH. اگر مقدار برابر error باشد، عملیات pack200 با یک توضیح ناموفق خواهد بود. اگر مقدار برابر strip باشد، ویژگی از خروجی حذف می‌شود. حذف ویژگی‌های مورد نیاز JVM می‌تواند باعث خطاهای بارگذار کلاس شود. برای مثال، --class-attribute=CompilationID=pass باعث می‌شود فایل کلاسی که حاوی این ویژگی است، بدون اقدام بیشتر توسط بسته‌بند، مستقیماً عبور داده شود. اگر مقدار برابر pass باشد، کل کلاس طوری منتقل می‌شود که گویی یک منبع است. -f pack.properties , --config-file=pack.properties یک فایل پیکربندی، حاوی ویژگی‌های جاوا برای مقداردهی اولیه بسته‌بند، می‌تواند در خط فرمان مشخص شود. pack200 -f pack.properties myarchive.pack.gz myarchive.jar more pack.properties # Generic properties for the packer. modification.time=latest deflate.hint=false keep.file.order=false # This option will cause the files bearing new attributes to # be reported as an error rather than passed uncompressed. unknown.attribute=error # Change the segment limit to be unlimited. segment.limit=-1 -v, --verbose پیام‌های خروجی را با جزئیات کم نمایش می‌دهد. تکرار مشخص کردن این گزینه پیام‌های پرحرف‌تر و دقیق‌تری ایجاد می‌کند. -q, --quiet عملیات خاموش و بدون پیام را تعیین می‌کند. -lfilename , --log-file=filename یک فایل لاگ را برای ارسال خروجی پیام‌ها تعیین می‌کند. -?, -h, --help اطلاعات راهنمای این دستور را چاپ می‌کند. -V, --version اطلاعات نسخهٔ این دستور را چاپ می‌کند. -Joption گزینهٔ مشخص‌شده را به ماشین مجازی جاوا (JVM) ارسال می‌کند. برای اطلاعات بیشتر، صفحهٔ راهنمای دستور java(1) را ببینید. برای مثال، -J-Xms48m حافظهٔ راه‌اندازی را روی ۴۸ مگابایت تنظیم می‌کند. وضعیت خروج (EXIT STATUS) مقدارهای خروج زیر بازگردانده می‌شوند: 0 برای اتمام موفقیت‌آمیز، و عددی بزرگ‌تر از 0 هنگام وقوع خطا. نکات (NOTES) این دستور نباید با pack(1) اشتباه گرفته شود. دستورهای pack و pack200 ابزارهایی جداگانه هستند. در صورت وجود هرگونه مغایرت، مشخصات Java SE API ارائه‌شده همراه با JDK مرجع نهایی و دارای اولویت است. همچنین ببینید (SEE ALSO) • unpack200(1) • jar(1) • jarsigner(1) JDK 8 21 November 2013 pack200(1)