JPACKAGE(1) JDK Commands JPACKAGE(1)

jpackage - ابزار بسته‌بندی برنامه‌های مستقل جاوا در قالب بسته‌های نصبی (نسخه ۲۶)

jpackage [گزینه‌ها]

گزینه‌ها
گزینه‌های خط فرمان که با فاصله از یکدیگر جدا شده‌اند. بخش گزینه‌های jpackage را ببینید.

ابزار jpackage یک برنامه جاوا و یک ایمیج زمان اجرای جاوا را به عنوان ورودی دریافت کرده و یک ایمیج برنامه جاوا شامل تمام وابستگی‌های لازم تولید می‌کند. این ابزار قادر به تولید بسته بومی در قالب‌های مخصوص هر پلتفرم، مانند exe در ویندوز یا dmg در macOS است. هر قالب باید روی همان پلتفرمی که اجرا می‌شود ساخته شود؛ هیچ پشتیبانی بین‌پلتفرمی (cross-platform) وجود ندارد. این ابزار دارای گزینه‌هایی است که امکان سفارشی‌سازی برنامه‌های بسته‌بندی‌شده را به روش‌های مختلف فراهم می‌کند.

@filename
خواندن گزینه‌ها از یک فایل.

از این گزینه می‌توان چندین بار استفاده کرد.

نوع بسته‌ای که باید ایجاد شود
مقادیر معتبر عبارتند از: {"app-image", "exe", "msi", "rpm", "deb", "pkg", "dmg"} اگر این گزینه مشخص نشود، نوع پیش‌فرض وابسته به پلتفرم ایجاد خواهد شد.
نسخه برنامه و/یا بسته
حق نشر (کپی‌رایت) برنامه
توضیحات برنامه
چاپ متن راهنمای استفاده همراه با فهرست و توضیحات هر گزینه معتبر برای پلتفرم جاری در جریان خروجی و سپس خروج.
مسیر آیکون بسته برنامه

(مسیر مطلق یا نسبی نسبت به دایرکتوری جاری)

نام برنامه و/یا بسته
مسیری که فایل خروجی تولیدشده در آن قرار می‌گیرد

(مسیر مطلق یا نسبی نسبت به دایرکتوری جاری).

به‌طور پیش‌فرض دایرکتوری کاری جاری است.

مسیر برای بازنویسی منابع jpackage

(مسیر مطلق یا نسبی نسبت به دایرکتوری جاری)

آیکون‌ها، فایل‌های الگو و سایر منابع jpackage را می‌توان با افزودن منابع جایگزین به این دایرکتوری بازنویسی کرد.

مسیر یک دایرکتوری جدید یا خالی برای ایجاد فایل‌های موقت

(مسیر مطلق یا نسبی نسبت به دایرکتوری جاری)

در صورت تعیین، دایرکتوری موقت پس از اتمام کار حذف نخواهد شد و باید به‌صورت دستی حذف شود.

در صورت عدم تعیین، یک دایرکتوری موقت ایجاد شده و پس از اتمام کار حذف خواهد شد.

ارائه‌دهنده (سازنده) برنامه
فعال‌سازی خروجی با جزئیات کامل.
چاپ نسخه محصول در جریان خروجی و سپس خروج.

فهرستی از ماژول‌ها برای افزودن که با کاما (",") از هم جدا شده‌اند

این فهرست ماژول‌ها، همراه با ماژول اصلی (در صورت تعیین)، به عنوان آرگومان --add-module به jlink ارسال می‌شوند. اگر تعیین نشود، یا فقط ماژول اصلی (اگر --module تعیین شده باشد) یا مجموعه پیش‌فرض ماژول‌ها (اگر --main-jar تعیین شده باشد) استفاده می‌شود.

از این گزینه می‌توان چندین بار استفاده کرد.

فهرستی از مسیرها که با File.pathSeparator از هم جدا شده‌اند

هر مسیر یا دایرکتوری ماژول‌ها است یا مسیر به یک فایل jar ماژولار، و می‌تواند مطلق یا نسبی نسبت به دایرکتوری جاری باشد.

از این گزینه می‌توان چندین بار استفاده کرد.

فهرستی از گزینه‌ها که با فاصله از هم جدا شده‌اند تا به jlink ارسال شوند

در صورت عدم تعیین، مقدار پیش‌فرض آن "--strip-native-commands --strip-debug --no-man-pages --no-header-files" است.

از این گزینه می‌توان چندین بار استفاده کرد.

مسیر ایمیج زمان اجرای از پیش تعریف‌شده که در ایمیج برنامه کپی خواهد شد

(مسیر مطلق یا نسبی نسبت به دایرکتوری جاری)

اگر --runtime-image مشخص نشود، jpackage ابزار jlink را برای ایجاد ایمیج زمان اجرا با استفاده از گزینه‌های تعیین‌شده توسط --jlink-options اجرا می‌کند.

مسیر دایرکتوری ورودی که حاوی فایل‌های مورد نظر برای بسته‌بندی است

(مسیر مطلق یا نسبی نسبت به دایرکتوری جاری)

تمام فایل‌های موجود در دایرکتوری ورودی در ایمیج برنامه بسته‌بندی خواهند شد.

فهرستی از مسیرها به فایل‌ها و/یا دایرکتوری‌ها که با کاما از هم جدا شده‌اند تا به محتوای اصلی برنامه اضافه شوند.

از این گزینه می‌توان بیش از یک بار استفاده کرد.

نکته macOS: مقدار باید دایرکتوری با زیردایرکتوری "Resources" باشد (یا هر دایرکتوری معتبر دیگر در دایرکتوری "Contents" بسته برنامه). در غیر این صورت، jpackage ممکن است بسته برنامه نامعتبر تولید کند که در امضای کد و/یا اعتبارسنجی (notarization) ناموفق باشد.

نام راه‌انداز و مسیر یک فایل Properties که شامل فهرستی از جفت‌های کلید و مقدار است

(مسیر مطلق یا نسبی نسبت به دایرکتوری جاری)

کلیدهای "module", "main-jar", "main-class", "description", "arguments", "java-options", "icon", "launcher-as-service", "win-console", "win-shortcut", "win-menu" و "linux-shortcut" قابل استفاده هستند.

این گزینه‌ها برای ساخت یک راه‌انداز جایگزین اضافی، به گزینه‌های اصلی خط فرمان اضافه شده یا برای بازنویسی آن‌ها استفاده می‌شوند. راه‌انداز اصلی برنامه از روی گزینه‌های خط فرمان ساخته خواهد شد. راه‌اندازهای جایگزین اضافی را می‌توان با استفاده از این گزینه ساخت، و از این گزینه می‌توان چندین بار برای ساخت چندین راه‌انداز اضافی استفاده کرد.

آرگومان‌های خط فرمان برای ارسال به کلاس اصلی در صورتی که هیچ آرگومان خط فرمانی به راه‌انداز داده نشود

از این گزینه می‌توان چندین بار استفاده کرد.

مقدار می‌تواند شامل زیررشته‌هایی باشد که در زمان اجرا بسط داده می‌شوند. دو نوع از چنین زیررشته‌هایی پشتیبانی می‌شوند: متغیرهای محیطی و توکن‌های "APPDIR", "BINDIR" و "ROOTDIR".

یک زیررشته قابل بسط باید بین نویسه علامت دلار ($) و اولین نویسه غیرحرفی-عددی پس از آن قرار گیرد. یا اینکه می‌تواند بین زیررشته‌های "${" و "}" محصور شود.

زیررشته‌های قابل بسط در یونیکس حساس به حروف بزرگ و کوچک و در ویندوز غیرحساس به حروف هستند. اگر متغیر محیطی ارجاع داده شده تعریف نشده باشد، هیچ بسط رشته‌ای رخ نمی‌دهد.

متغیرهای محیطی با نام‌های "APPDIR", "BINDIR" و "ROOTDIR" نادیده گرفته می‌شوند و این زیررشته‌های قابل بسط با مقادیر محاسبه‌شده توسط راه‌انداز برنامه جایگزین خواهند شد.

برای جلوگیری از بسط زیررشته، نویسه علامت دلار را با نویسه بک‌اسلش (\) پیشوندگذاری کنید.

گزینه‌هایی برای ارسال به زمان اجرای جاوا

از این گزینه می‌توان چندین بار استفاده کرد.

مقدار می‌تواند شامل زیررشته‌هایی باشد که در زمان اجرا جایگزین می‌شوند، همانند گزینه --arguments.

نام کامل (Qualified name) کلاس اصلی برنامه برای اجرا

این گزینه فقط در صورتی قابل استفاده است که --main-jar تعیین شده باشد.

فایل JAR اصلی برنامه؛ حاوی کلاس اصلی (به‌صورت یک مسیر نسبی نسبت به مسیر ورودی مشخص می‌شود)

تنها یکی از گزینه‌های --module یا --main-jar قابل تعیین است و نمی‌توان هر دو را همزمان مشخص کرد.

ماژول اصلی (و به صورت اختیاری کلاس اصلی) برنامه

این ماژول باید در مسیر ماژول (module path) قرار داشته باشد.

هنگامی که این گزینه تعیین شود، ماژول اصلی در ایمیج زمان اجرای جاوا پیوند داده خواهد شد. تنها یکی از گزینه‌های --module یا --main-jar قابل تعیین است و نمی‌توان هر دو را همزمان مشخص کرد.

ایجاد یک راه‌انداز کنسولی برای برنامه؛ باید برای برنامه‌ای که به تعاملات کنسول نیاز دارد تعیین شود

شناسه‌ای که برنامه را به طور یکتا برای macOS مشخص می‌کند

به‌طور پیش‌فرض نام کلاس اصلی است.

تنها می‌تواند از نویسه‌های حرفی-عددی (A-Z,a-z,0-9)، خط تیره (-) و نقطه (.) استفاده کند.

نام برنامه به همان شکلی که در نوار منو ظاهر می‌شود

این نام می‌تواند با نام برنامه متفاوت باشد.

این نام باید کمتر از ۱۶ نویسه طول داشته باشد و برای نمایش در نوار منو و پنجره اطلاعات برنامه مناسب باشد. به‌طور پیش‌فرض نام برنامه است.

هنگام امضای بسته برنامه، این مقدار به تمام مؤلفه‌هایی که نیاز به امضا دارند و فاقد شناسه بسته موجود هستند، پیشوند می‌شود.
درخواست برای امضا شدن بسته یا ایمیج برنامه از پیش تعریف‌شده.
نام keychain برای جستجوی هویت امضاکننده

در صورت عدم تعیین، از keychainهای استاندارد استفاده می‌شود.

بخش نام تیم یا نام کاربر در هویت‌های امضای اپل
نشان می‌دهد که خروجی jpackage برای Mac App Store در نظر گرفته شده است.
مسیر فایل حاوی مجوزها (entitlements) برای استفاده در هنگام امضای فایل‌های اجرایی و کتابخانه‌ها در بسته
رشته مورد استفاده برای ساخت LSApplicationCategoryType در plist برنامه

مقدار پیش‌فرض "utilities" است.

نشانی اینترنتی (URL) صفحه اصلی برنامه
محل ایمیج از پیش تعریف‌شده برنامه که برای ساخت یک بسته قابل نصب (در همه پلتفرم‌ها) یا برای امضا شدن (در macOS) استفاده می‌شود

(مسیر مطلق یا نسبی نسبت به دایرکتوری جاری)

مسیر یک فایل Properties که شامل فهرستی از جفت‌های کلید و مقدار است

(مسیر مطلق یا نسبی نسبت به دایرکتوری جاری)

کلیدهای "extension", "mime-type", "icon" و "description" را می‌توان برای توصیف وابستگی فایل به کار برد.

از این گزینه می‌توان چندین بار استفاده کرد.

مسیر مطلق دایرکتوری نصب برنامه (در macOS یا لینوکس)، یا زیرمسیر نسبی دایرکتوری نصب مانند "Program Files" یا "AppData" (در ویندوز)
مسیر فایل مجوز (لایسنس)

(مسیر مطلق یا نسبی نسبت به دایرکتوری جاری)

مسیر ایمیج زمان اجرای از پیش تعریف‌شده برای نصب

(مسیر مطلق یا نسبی نسبت به دایرکتوری جاری)

هنگام ایجاد یک نصب‌کننده زمان اجرا، این گزینه الزامی است.

درخواست ایجاد یک نصب‌کننده که راه‌انداز اصلی برنامه را به عنوان یک برنامه از نوع سرویس پس‌زمینه ثبت کند.

افزودن یک کادر محاوره‌ای برای فعال کردن امکان انتخاب دایرکتوری نصب محصول توسط کاربر.
نشانی اینترنتی (URL) که کاربر می‌تواند اطلاعات بیشتر یا پشتیبانی فنی دریافت کند
درخواست افزودن میانبر منوی شروع (Start Menu) برای این برنامه
گروه منوی شروع که این برنامه در آن قرار می‌گیرد
درخواست انجام نصب بر پایه هر کاربر (per-user)
درخواست ایجاد میانبر دسکتاپ برای این برنامه
افزودن یک کادر محاوره‌ای تا کاربر بتواند انتخاب کند که آیا میانبرها توسط نصب‌کننده ایجاد شوند یا خیر
نشانی اینترنتی (URL) اطلاعات به‌روزرسانی موجود برای برنامه
شناسه UUID مرتبط با ارتقاهای این بسته

نام بسته لینوکس

به‌طور پیش‌فرض نام برنامه است.

نگه‌دارنده بسته ‎.deb
گروه منو که این برنامه در آن قرار می‌گیرد
بسته‌ها یا قابلیت‌های مورد نیاز برای برنامه
نوع مجوز (مقدار "License: value" در فایل ‎.spec بسته RPM)
مقدار انتشار در فایل <name>.spec بسته RPM یا مقدار بازنگری دبیان در فایل کنترل DEB
مقدار Group در فایل <name>.spec بسته RPM یا مقدار Section در فایل کنترل DEB
ایجاد یک میانبر برای برنامه.

گنجاندن تمام محتوای ارجاع‌شده در فایل dmg.

از این گزینه می‌توان بیش از یک بار استفاده کرد.

تولید یک بسته برنامه مناسب برای سیستم میزبان:
برای یک برنامه ماژولار:
    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 [<گزینه‌های اضافی jlink>...]
    jpackage --type app-image -n name \
        -m moduleName/className --runtime-image appRuntimeImage
تولید یک بسته زمان اجرای جاوا:
jpackage -n name --runtime-image <runtime-image>
امضای ایمیج از پیش تعریف‌شده برنامه (در macOS):
jpackage --type app-image --app-image <app-image> \
    --mac-sign [<گزینه‌های اضافی امضا>...]
نکته: تنها گزینه‌های اضافی مجاز در این حالت عبارتند از:
      مجموعه گزینه‌های اضافی امضای مک و --verbose

ابزار jpackage از jlink برای ایجاد زمان اجرای جاوا استفاده خواهد کرد، مگر اینکه از گزینه --runtime-image استفاده شود. ایمیج زمان اجرای جاوای ایجادشده در ویندوز شامل کتابخانه‌های زمان اجرای MS همراه با JDK خواهد بود. اگر برای برنامه به نسخه متفاوتی از کتابخانه‌های زمان اجرای MS نیاز باشد، کاربر باید خودش آن‌ها را اضافه/جایگزین کند.

آیکون‌ها، فایل‌های الگو و سایر منابع jpackage را می‌توان با افزودن منابع جایگزین به این دایرکتوری بازنویسی کرد. ابزار jpackage فایل‌ها را با نام‌های مشخص در دایرکتوری منابع جستجو خواهد کرد.

<launcher-name>.png
آیکون راه‌انداز برنامه

منبع پیش‌فرض JavaApp.png است

<launcher-name>.desktop
یک فایل دسکتاپ برای استفاده با دستور xdg-desktop-menu

برای راه‌اندازهای برنامه‌ای که برای وابستگی فایل ثبت شده‌اند و/یا آیکون دارند بررسی می‌شود

منبع پیش‌فرض template.desktop است

<package-name>-<launcher-name>.service
فایل واحد systemd برای راه‌انداز برنامه‌ای که به عنوان یک برنامه از نوع سرویس پس‌زمینه ثبت شده است

منبع پیش‌فرض unit-template.service است

<package-name>.spec
فایل spec برای RPM

منبع پیش‌فرض template.spec است

فایل کنترل (control)

منبع پیش‌فرض template.control است

فایل حق نشر (copyright)

منبع پیش‌فرض template.copyright است

اسکریپت پوسته پیش از نصب (pre-install)

منبع پیش‌فرض template.preinstall است

اسکریپت پوسته پیش از حذف (pre-remove)

منبع پیش‌فرض template.prerm است

اسکریپت پوسته پس از نصب (post-install)

منبع پیش‌فرض template.postinstall است

اسکریپت پوسته پس از حذف (post-remove)

منبع پیش‌فرض template.postrm است

<launcher-name>.ico
آیکون راه‌انداز برنامه

منبع پیش‌فرض JavaApp.ico است

<launcher-name>.properties
فایل Properties برای فایل اجرایی راه‌انداز برنامه

منبع پیش‌فرض WinLauncher.template است

<application-name>-post-image.wsf
یک فایل اسکریپت ویندوز (WSF) برای اجرا پس از ساخت ایمیج برنامه
فایل پروژه اصلی WiX

منبع پیش‌فرض main.wxs است

فایل پروژه WiX بازنویسی‌ها

منبع پیش‌فرض overrides.wxi است

فایل اجرایی نصب‌کننده سرویس

در صورتی بررسی می‌شود که برخی راه‌اندازهای برنامه به عنوان برنامه‌های از نوع سرویس پس‌زمینه ثبت شده باشند

<launcher-name>-service-install.wxi
فایل پروژه WiX نصب‌کننده سرویس

در صورتی بررسی می‌شود که برخی راه‌اندازهای برنامه به عنوان برنامه‌های از نوع سرویس پس‌زمینه ثبت شده باشند

منبع پیش‌فرض service-install.wxi است

<launcher-name>-service-config.wxi
فایل پروژه WiX پیکربندی سرویس

در صورتی بررسی می‌شود که برخی راه‌اندازهای برنامه به عنوان برنامه‌های از نوع سرویس پس‌زمینه ثبت شده باشند

منبع پیش‌فرض service-config.wxi است

فایل پروژه WiX برای کادر محاوره‌ای رابط کاربری نصب‌کننده جهت بررسی اینکه دایرکتوری نصب وجود ندارد یا خالی است

منبع پیش‌فرض InstallDirNotEmptyDlg.wxs است

فایل پروژه WiX برای کادر محاوره‌ای رابط کاربری نصب‌کننده جهت پیکربندی میانبرها

منبع پیش‌فرض ShortcutPromptDlg.wxs است

فایل پروژه WiX با سلسله‌مراتب مؤلفه‌های ایمیج برنامه
فایل پروژه WiX برای رابط کاربری نصب‌کننده
فایل پروژه WiX با شرط مسدود کردن نصب در نسخه‌های قدیمی‌تر ویندوز

منبع پیش‌فرض os-condition.wxf است

تبدیل‌کننده کد منبع WiX. برای تبدیل منابع WiX از طرح‌واره نسخه ۳ به ۴ هنگام استفاده از WiX نسخه ۴ یا جدیدتر استفاده می‌شود

منبع پیش‌فرض wix3-to-wix4-conv.xsl است

فایل Properties برای فایل اجرایی نصب‌کننده

منبع پیش‌فرض WinInstaller.template است

<package-name>-post-msi.wsf
یک فایل اسکریپت ویندوز (WSF) برای اجرا پس از ساخت بسته‌بند تعبیه‌شده MSI برای نصب‌کننده EXE
پوشش اجرایی (wrapper) برای نصب‌کننده MSI

منبع پیش‌فرض msiwrapper.exe است

<launcher-name>.icns
آیکون راه‌انداز برنامه

منبع پیش‌فرض JavaApp.icns است

فایل فهرست ویژگی‌های برنامه (Property list)

منبع پیش‌فرض Info-lite.plist.template است

فایل فهرست ویژگی‌های زمان اجرای جاوا

منبع پیش‌فرض Runtime-Info.plist.template است

<application-name>.entitlements
فایل فهرست ویژگی‌های مجوزهای امضا (Signing entitlements)

منبع پیش‌فرض sandbox.plist است

<package-name>-post-image.sh
اسکریپت پوسته برای اجرا پس از ساخت ایمیج برنامه

اسکریپت پوسته حذف‌کننده (uninstaller)

در صورتی بررسی می‌شود که برخی راه‌اندازهای برنامه به عنوان برنامه‌های از نوع سرویس پس‌زمینه ثبت شده باشند

منبع پیش‌فرض uninstall.command.template است

اسکریپت پوسته پیش از نصب

منبع پیش‌فرض preinstall.template است

اسکریپت پوسته پس از نصب

منبع پیش‌فرض postinstall.template است

اسکریپت پوسته پیش از نصب برای بسته سرویس‌ها

در صورتی بررسی می‌شود که برخی راه‌اندازهای برنامه به عنوان برنامه‌های از نوع سرویس پس‌زمینه ثبت شده باشند

منبع پیش‌فرض services-preinstall.template است

اسکریپت پوسته پس از نصب برای بسته سرویس‌ها

در صورتی بررسی می‌شود که برخی راه‌اندازهای برنامه به عنوان برنامه‌های از نوع سرویس پس‌زمینه ثبت شده باشند

منبع پیش‌فرض services-postinstall.template است

<package-name>-background.png
تصویر پس‌زمینه

منبع پیش‌فرض background_pkg.png است

<package-name>-background-darkAqua.png
تصویر پس‌زمینه تیره

منبع پیش‌فرض background_pkg.png است

فایل فهرست ویژگی‌های محصول

منبع پیش‌فرض product-def.plist است

<package-name>-<launcher-name>.plist
فایل فهرست ویژگی‌های launchd برای راه‌انداز برنامه‌ای که به عنوان یک برنامه از نوع سرویس پس‌زمینه ثبت شده است

منبع پیش‌فرض launchd.plist.template است

<package-name>-dmg-setup.scpt
اسکریپت راه‌اندازی AppleScript

منبع پیش‌فرض DMGsetup.scpt است

<package-name>-license.plist
فایل فهرست ویژگی‌های مجوز (لایسنس)

منبع پیش‌فرض lic_template.plist است

<package-name>-background.tiff
تصویر پس‌زمینه

منبع پیش‌فرض background_dmg.tiff است

<package-name>-volume.icns
آیکون دیسک (Volume)

منبع پیش‌فرض JavaApp.icns است

2026 JDK 26.0.2.1