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