.\" Copyright (c) 2018, 2021, 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. .\" .\" Automatically generated by Pandoc 2.3.1 .\" .TH "JPACKAGE" "1" "2021" "JDK 17" "JDK Commands" .hy .SH "نام (NAME)" .PP jpackage \- ابزاری برای بسته‌بندی برنامه‌های خودکفای جاوا. .SH "خلاصه دستور (SYNOPSIS)" .PP \f[CB]jpackage\f[R] [\f[I]options\f[R]] .TP .B \f[I]options\f[R] گزینه‌های خط فرمان که با فاصله از هم جدا شده‌اند. بخش \f[B]گزینه‌های jpackage\f[R] را ببینید. .RS .RE .SH "توضیحات (DESCRIPTION)" .PP ابزار \f[CB]jpackage\f[R] یک برنامه جاوا و یک ایمیج زمان اجرای جاوا را به عنوان ورودی دریافت کرده و ایمیج برنامه‌ای تولید می‌کند که شامل تمام وابستگی‌های لازم است. این ابزار قادر است یک بسته بومی (native) در قالب‌های ویژه هر پلتفرم، مانند exe در Windows یا dmg در macOS تولید کند. هر قالب باید روی همان پلتفرمی که روی آن اجرا می‌شود ساخته شود؛ هیچ پشتیبانی از ساخت میان‌پلتفرمی (cross\-platform) وجود ندارد. این ابزار دارای گزینه‌هایی است که امکان سفارشی‌سازی برنامه‌های بسته‌بندی‌شده را به روش‌های گوناگون فراهم می‌کند. .SH "گزینه‌های JPACKAGE (JPACKAGE OPTIONS)" .SS گزینه‌های عمومی: .TP .B \f[CB]\@\f[R]\f[I]filename\f[R] خواندن گزینه‌ها از یک فایل. .RS .PP از این گزینه می‌توان چندین بار استفاده کرد. .RE .TP .B \f[CB]\-\-type\f[R] یا \f[CB]\-t\f[R] نوع بسته‌ای که باید ایجاد شود. .RS .PP مقادیر معتبر عبارتند از: {"app\-image", "exe", "msi", "rpm", "deb", "pkg", "dmg"} .PP اگر این گزینه مشخص نشود، نوع پیش‌فرض وابسته به پلتفرم ایجاد خواهد شد. .RE .TP .B \f[CB]\-\-app\-version\f[R] نسخه برنامه و/یا بسته. .RS .RE .TP .B \f[CB]\-\-copyright\f[R] حق نشر (کپی‌رایت) برنامه. .RS .RE .TP .B \f[CB]\-\-description\f[R] توضیحات برنامه. .RS .RE .TP .B \f[CB]\-\-help\f[R] یا \f[CB]\-h\f[R] چاپ متن راهنمای استفاده همراه با فهرست و شرح هر گزینه معتبر برای پلتفرم فعلی در خروجی، و خروج. .RS .RE .TP .B \f[CB]\-\-icon\f[R] مسیر آیکون بسته برنامه (مسیر مطلق یا نسبی نسبت به دایرکتوری فعلی). .RS .RE .TP .B \f[CB]\-\-name\f[R] یا \f[CB]\-n\f[R] نام برنامه و/یا بسته. .RS .RE .TP .B \f[CB]\-\-dest\f[R] یا \f[CB]\-d\f[R] مسیری که فایل خروجی تولیدشده در آن قرار می‌گیرد. .RS .PP به طور پیش‌فرض دایرکتوری کاری فعلی است. (مسیر مطلق یا نسبی نسبت به دایرکتوری فعلی). .RE .TP .B \f[CB]\-\-temp\f[R] مسیر یک دایرکتوری جدید یا خالی مورد استفاده برای ایجاد فایل‌های موقت (مسیر مطلق یا نسبی نسبت به دایرکتوری فعلی). .RS .PP در صورت تعیین، دایرکتوری موقت پس از اتمام کار حذف نخواهد شد و باید به صورت دستی حذف شود. .PP در صورت عدم تعیین، یک دایرکتوری موقت ایجاد شده و پس از اتمام کار حذف خواهد شد. .RE .TP .B \f[CB]\-\-vendor\f[R] تولیدکننده برنامه. .RS .RE .TP .B \f[CB]\-\-verbose\f[R] خروجی پرجزئیات (verbose) را فعال می‌کند. .RS .RE .TP .B \f[CB]\-\-version\f[R] چاپ نسخه محصول در جریان خروجی و خروج. .RS .RE.SS گزینه‌ها برای ایجاد تصویر زمان اجرا: .TP .B \f[CB]\-\-add\-modules\f[R] [\f[CB],\f[R]...] فهرستی از ماژول‌ها که با کاما («,») از یکدیگر جدا شده‌اند برای افزودن .RS .PP این فهرست ماژول‌ها، به همراه ماژول اصلی (در صورت تعیین شدن)، به عنوان آرگومان \-\-add\-module به jlink ارسال خواهد شد. در صورت عدم تعیین، یا تنها ماژول اصلی (اگر \-\-module مشخص شده باشد)، یا مجموعهٔ پیش‌فرض ماژول‌ها (اگر \-\-main\-jar مشخص شده باشد) استفاده می‌شوند. .PP این گزینه می‌تواند چندین بار استفاده شود. .RE .TP .B \f[CB]\-\-module\-path\f[R] یا \f[CB]\-p\f[R] ... فهرستی از مسیرها که با File.pathSeparator از یکدیگر جدا شده‌اند .RS .PP هر مسیر یا یک دایرکتوری از ماژول‌هاست یا مسیر یک فایل jar ماژولار، و می‌تواند مطلق یا نسبی نسبت به دایرکتوری جاری باشد. .PP این گزینه می‌تواند چندین بار استفاده شود. .RE .TP .B \f[CB]\-\-jlink\-options\f[R] فهرستی از گزینه‌ها که با فاصله از هم جدا شده‌اند تا به jlink ارسال شوند .RS .PP در صورت عدم تعیین، مقدار پیش‌فرض آن "\-\-strip\-native\-commands \-\-strip\-debug \-\-no\-man\-pages \-\-no\-header\-files" خواهد بود. .PP این گزینه می‌تواند چندین بار استفاده شود. .RE .TP .B \f[CB]\-\-runtime\-image\f[R] مسیر تصویر زمان اجرای از پیش تعریف‌شده که درون تصویر برنامه کپی خواهد شد (مسیر مطلق یا نسبی نسبت به دایرکتوری جاری) .RS .PP اگر \-\-runtime\-image مشخص نشود، jpackage ابزار jlink را اجرا خواهد کرد تا تصویر زمان اجرا را با استفاده از گزینه‌های تعیین‌شده توسط \-\-jlink\-options بسازد. .RE .SS گزینه‌ها برای ایجاد تصویر برنامه: .TP .B \f[CB]\-\-input\f[R] یا \f[CB]\-i\f[R] مسیر دایرکتوری ورودی که حاوی فایل‌های مورد نیاز برای بسته‌بندی است (مسیر مطلق یا نسبی نسبت به دایرکتوری جاری) .RS .PP تمام فایل‌های موجود در دایرکتوری ورودی در تصویر برنامه بسته‌بندی خواهند شد. .RE .SS گزینه‌ها برای ایجاد راه‌انداز(های) برنامه: .TP .B \f[CB]\-\-add\-launcher\f[R] = نام راه‌انداز، و مسیری به یک فایل Properties که شامل فهرستی از جفت‌های کلید و مقدار (key, value) است (مسیر مطلق یا نسبی نسبت به دایرکتوری جاری) .RS .PP کلیدهای "module"،‏ "main\-jar"،‏ "main\-class"،‏ "arguments"، "java\-options"،‏ "app\-version"،‏ "icon"،‏ "linux\-app\-category"، "linux\-app\-release" و "win\-console" می‌توانند استفاده شوند. .PP این گزینه‌ها به گزینه‌های اصلی خط فرمان افزوده شده، یا برای بازنویسی آن‌ها به کار می‌روند تا یک راه‌انداز جایگزین اضافی ساخته شود. راه‌انداز اصلی برنامه بر اساس گزینه‌های خط فرمان ساخته خواهد شد. راه‌اندازهای جایگزین اضافی را می‌توان با استفاده از این گزینه ساخت، و این گزینه می‌تواند چندین بار برای ساخت چندین راه‌انداز اضافی استفاده شود. .RE .TP .B \f[CB]\-\-arguments\f[R]
آرگومان‌های خط فرمان جهت ارسال به کلاس اصلی، در صورتی که هیچ آرگومان خط فرمانی به راه‌انداز داده نشود .RS .PP این گزینه می‌تواند چندین بار استفاده شود. .RE .TP .B \f[CB]\-\-java\-options\f[R] گزینه‌ها جهت ارسال به محیط زمان اجرای جاوا (Java runtime) .RS .PP این گزینه می‌تواند چندین بار استفاده شود. .RE .TP .B \f[CB]\-\-main\-class\f[R] نام کامل (Qualified name) کلاس اصلی برنامه برای اجرا .RS .PP این گزینه تنها در صورتی می‌تواند استفاده شود که \-\-main\-jar مشخص شده باشد. .RE .TP .B \f[CB]\-\-main\-jar\f[R]
فایل JAR اصلی برنامه؛ حاوی کلاس اصلی (تعیین‌شده به صورت یک مسیر نسبی نسبت به مسیر ورودی) .RS .PP تنها یکی از گزینه‌های \-\-module یا \-\-main\-jar می‌تواند مشخص شود و نه هر دو. .RE .TP .B \f[CB]\-\-module\f[R] یا \f[CB]\-m\f[R] /
] ماژول اصلی (و در صورت تمایل، کلاس اصلی) برنامه .RS .PP این ماژول باید در مسیر ماژول (module path) قرار داشته باشد. .PP هنگامی که این گزینه تعیین شود، ماژول اصلی در تصویر زمان اجرای جاوا پیوند داده خواهد شد. تنها یکی از گزینه‌های \-\-module یا \-\-main\-jar می‌تواند مشخص شود و نه هر دو. .RE.SS گزینه وابسته به سکو برای ایجاد راه‌انداز برنامه: .SS گزینه‌های سکوی Windows (تنها هنگام اجرا روی Windows در دسترس است): .TP .B \f[CB]\-\-win\-console\f[R] یک راه‌انداز کنسول برای برنامه ایجاد می‌کند؛ باید برای برنامه‌هایی که به تعاملات کنسول نیاز دارند مشخص شود. .RS .RE .SS گزینه‌های سکوی macOS (تنها هنگام اجرا روی macOS در دسترس است): .TP .B \f[CB]\-\-mac\-package\-identifier\f[R] شناسه‌ای که برنامه را به‌طور یکتا برای macOS مشخص می‌کند .RS .PP پیش‌فرض آن نام کلاس اصلی (main class) است. .PP تنها مجاز به استفاده از نویسه‌های حرفی\-عددی (A\-Z, a\-z, 0\-9)، خط پیوند (\-) و نقطه (.) است. .RE .TP .B \f[CB]\-\-mac\-package\-name\f[R] نام برنامه به‌صورتی که در نوار منو (Menu Bar) نمایش داده می‌شود .RS .PP این نام می‌تواند با نام برنامه متفاوت باشد. .PP این نام باید کمتر از ۱۶ نویسه باشد و برای نمایش در نوار منو و پنجره اطلاعات (Info) برنامه مناسب باشد. پیش‌فرض آن نام برنامه است. .RE .TP .B \f[CB]\-\-mac\-package\-signing\-prefix\f[R] هنگام امضای بسته برنامه، این مقدار به ابتدای تمامی مؤلفه‌هایی که نیازمند امضا بوده و فاقد شناسه بسته موجود هستند افزوده می‌شود. .RS .RE .TP .B \f[CB]\-\-mac\-sign\f[R] درخواست می‌کند که بسته (bundle) امضا شود. .RS .RE .TP .B \f[CB]\-\-mac\-signing\-keychain\f[R] نام دسته کلید (keychain) برای جستجوی هویت امضاکننده .RS .PP در صورت مشخص نشدن، از keychainهای استاندارد استفاده می‌شود. .RE .TP .B \f[CB]\-\-mac\-signing\-key\-user\-name\f[R] بخش نام تیم یا کاربر در هویت‌های امضای Apple .RS .RE .TP .B \f[CB]\-\-mac\-app\-store\f[R] مشخص می‌کند که خروجی jpackage برای Mac App Store در نظر گرفته شده است. .RS .RE .TP .B \f[CB]\-\-mac\-entitlements\f[R] مسیر فایل حاوی مجوزها (entitlements) برای استفاده هنگام امضای فایل‌های اجرایی و کتابخانه‌ها در بسته .RS .RE .TP .B \f[CB]\-\-mac\-app\-category\f[R] رشته مورد استفاده برای ساخت LSApplicationCategoryType در plist برنامه .RS .PP مقدار پیش‌فرض "utilities" است. .RE .SS گزینه‌های ایجاد بسته برنامه: .TP .B \f[CB]\-\-about\-url\f[R] نشانی وب (URL) صفحه اصلی برنامه .RS .RE .TP .B \f[CB]\-\-app\-image\f[R] مکان تصویر از پیش تعریف‌شده برنامه (application image) که برای ساخت یک بسته قابل نصب استفاده می‌شود .RS .PP (مسیر مطلق یا نسبی نسبت به دایرکتوری جاری). .PP برای ساخت تصویر برنامه، گزینه‌های حالت create\-app\-image را ببینید. .RE .TP .B \f[CB]\-\-file\-associations\f[R] مسیر یک فایل Properties که شامل فهرستی از جفت‌های کلید، مقدار است (مسیر مطلق یا نسبی نسبت به دایرکتوری جاری) .RS .PP کلیدهای "extension" و "mime\-type" و "icon" و "description" می‌توانند برای توصیف این وابستگی استفاده شوند. .PP این گزینه می‌تواند چندین بار استفاده شود. .RE .TP .B \f[CB]\-\-install\-dir\f[R] مسیر مطلق دایرکتوری نصب برنامه (در macos یا linux)، یا زیرمسیر نسبی از دایرکتوری نصب مانند "Program Files" یا "AppData" (در Windows) .RS .RE .TP .B \f[CB]\-\-license\-file\f[R] مسیر فایل پروانه (مسیر مطلق یا نسبی نسبت به دایرکتوری جاری) .RS .RE .TP .B \f[CB]\-\-resource\-dir\f[R] مسیر بازنویسی منابع jpackage (مسیر مطلق یا نسبی نسبت به دایرکتوری جاری) .RS .PP آیکون‌ها، فایل‌های الگو و سایر منابع jpackage را می‌توان با افزودن منابع جایگزین به این دایرکتوری بازنویسی کرد. .RE .TP .B \f[CB]\-\-runtime\-image\f[R] مسیر تصویر زمان اجرای از پیش تعریف‌شده (runtime image) برای نصب (مسیر مطلق یا نسبی نسبت به دایرکتوری جاری) .RS .PP این گزینه هنگام ایجاد یک نصب‌کننده زمان اجرا الزامی است. .RE.SS گزینه‌های وابسته به بستر برای ایجاد بسته برنامه: .SS گزینه‌های بستر ویندوز (تنها هنگام اجرا روی ویندوز در دسترس است): .TP .B \f[CB]\-\-win\-dir\-chooser\f[R] یک کادر محاوره‌ای اضافه می‌کند تا کاربر بتواند دایرکتوری محل نصب محصول را انتخاب کند. .RS .RE .TP .B \f[CB]\-\-win\-help\-url\f[R] نشانی اینترنتی (URL) برای دریافت اطلاعات بیشتر یا پشتیبانی فنی توسط کاربر .RS .RE .TP .B \f[CB]\-\-win\-menu\f[R] درخواست برای افزودن میانبر منوی استارت (Start Menu) برای این برنامه .RS .RE .TP .B \f[CB]\-\-win\-menu\-group\f[R] گروه منوی استارتی که این برنامه در آن قرار می‌گیرد .RS .RE .TP .B \f[CB]\-\-win\-per\-user\-install\f[R] درخواست برای انجام نصب به ازای هر کاربر (per\-user) .RS .RE .TP .B \f[CB]\-\-win\-shortcut\f[R] درخواست برای ایجاد میانبر روی میزکار برای این برنامه .RS .RE .TP .B \f[CB]\-\-win\-shortcut\-prompt\f[R] یک کادر محاوره‌ای اضافه می‌کند تا کاربر بتواند انتخاب کند که آیا میانبرها توسط نصاب ایجاد شوند یا خیر .RS .RE .TP .B \f[CB]\-\-win\-update\-url\f[R] نشانی اینترنتی (URL) اطلاعات به‌روزرسانی دردسترس برنامه .RS .RE .TP .B \f[CB]\-\-win\-upgrade\-uuid\f[R] شناسه یکتا (UUID) مرتبط با ارتقاهای این بسته .RS .RE .SS گزینه‌های بستر لینوکس (تنها هنگام اجرا روی لینوکس در دسترس است): .TP .B \f[CB]\-\-linux\-package\-name\f[R] نام بسته لینوکس .RS .PP پیش‌فرض نام برنامه است. .RE .TP .B \f[CB]\-\-linux\-deb\-maintainer\f[R] نگه‌دارنده بسته .deb .RS .RE .TP .B \f[CB]\-\-linux\-menu\-group\f[R] گروه منویی که این برنامه در آن قرار می‌گیرد .RS .RE .TP .B \f[CB]\-\-linux\-package\-deps\f[R] بسته‌ها یا قابلیت‌های موردنیاز برای برنامه .RS .RE .TP .B \f[CB]\-\-linux\-rpm\-license\-type\f[R] نوع مجوز (مقدار \(lqLicense: \(rq در فایل .spec مربوط به RPM) .RS .RE .TP .B \f[CB]\-\-linux\-app\-release\f[R] مقدار Release در فایل .spec مربوط به RPM یا مقدار بازنگری دبیان در فایل کنترل DEB .RS .RE .TP .B \f[CB]\-\-linux\-app\-category\f[R] مقدار Group در فایل .spec مربوط به RPM یا مقدار Section در فایل کنترل DEB .RS .RE .TP .B \f[CB]\-\-linux\-shortcut\f[R] یک میانبر برای برنامه ایجاد می‌کند. .RS .RE.SH "مثال‌های JPACKAGE (JPACKAGE EXAMPLES)" .IP .nf \f[CB] تولید\ یک\ بسته\ برنامه\ مناسب\ برای\ سیستم\ میزبان: \f[R] .fi .IP .nf \f[CB] برای\ یک\ برنامه\ ماژولار: \ \ \ \ jpackage\ \-n\ name\ \-p\ modulePath\ \-m\ moduleName/className برای\ یک\ برنامه\ غیرماژولار: \ \ \ \ jpackage\ \-i\ inputDir\ \-n\ name\ \\ \ \ \ \ \ \ \ \ \-\-main\-class\ className\ \-\-main\-jar\ myJar.jar از\ یک\ تصویر\ برنامه\ از\ پیش\ ساخته‌شده: \ \ \ \ jpackage\ \-n\ name\ \-\-app\-image\ appImageDir \f[R] .fi .IP .nf \f[CB] تولید\ یک\ تصویر\ برنامه: \f[R] .fi .IP .nf \f[CB] برای\ یک\ برنامه\ ماژولار: \ \ \ \ jpackage\ \-\-type\ app\-image\ \-n\ name\ \-p\ modulePath\ \\ \ \ \ \ \ \ \ \ \-m\ moduleName/className برای\ یک\ برنامه\ غیرماژولار: \ \ \ \ jpackage\ \-\-type\ app\-image\ \-i\ inputDir\ \-n\ name\ \\ \ \ \ \ \ \ \ \ \-\-main\-class\ className\ \-\-main\-jar\ myJar.jar برای\ ارائه\ گزینه‌های\ سفارشی\ خود\ به\ jlink،\ دستور\ jlink\ را\ جداگانه\ اجرا\ کنید: \ \ \ \ jlink\ \-\-output\ appRuntimeImage\ \-p\ modulePath\ \\ \ \ \ \ \ \ \ \ \-\-add\-modules\ moduleName\ \\ \ \ \ \ \ \ \ \ \-\-no\-header\-files\ [...] \ \ \ \ jpackage\ \-\-type\ app\-image\ \-n\ name\ \\ \ \ \ \ \ \ \ \ \-m\ moduleName/className\ \-\-runtime\-image\ appRuntimeImage \f[R] .fi .IP .nf \f[CB] تولید\ یک\ بسته\ زمان\ اجرای\ Java: \f[R] .fi .IP .nf \f[CB] jpackage\ \-n\ name\ \-\-runtime\-image\ \f[R] .fi