| JLINK(1) | JDK Commands | JLINK(1) |
نام (NAME)
jlink - سرهمبندی و بهینهسازی مجموعهای از ماژولها و وابستگیهای آنها در یک ایمیج زمان اجرای سفارشی
خلاصه دستور (SYNOPSIS)
jlink [options] --module-path modulepath --add-modules module[,module...]
- options
- گزینههای خط فرمان که با فاصله از هم جدا میشوند. بخش گزینههای jlink را ببینید.
- modulepath
- مسیری که ابزار jlink در آن ماژولهای قابل مشاهده را پیدا میکند. این ماژولها میتوانند فایلهای JAR ماژولار، فایلهای JMOD یا ماژولهای بستهبندینشده (exploded) باشند.
- module
- نام ماژولهایی که باید به ایمیج زمان اجرا اضافه شوند. ابزار jlink این ماژولها و وابستگیهای متعدی (transitive) آنها را اضافه میکند.
توضیحات (DESCRIPTION)
ابزار jlink مجموعهای از ماژولها را همراه با وابستگیهای متعدی آنها پیوند میدهد تا یک ایمیج زمان اجرای سفارشی ایجاد کند.
نکته:
توسعهدهندگان مسئول بهروزرسانی ایمیجهای زمان اجرای سفارشی خود هستند.
گزینههای JLINK (JLINK OPTIONS)
- --add-modules mod[,mod...]
- ماژولهای نامبردهشده، mod، را به مجموعه پیشفرض ماژولهای ریشه اضافه میکند. مجموعه پیشفرض ماژولهای ریشه خالی است.
- --bind-services
- ماژولهای ارائهدهنده سرویس و وابستگیهای آنها را پیوند میدهد.
- -c ={0|1|2} یا --compress={0|1|2}
- فشردهسازی منابع را فعال میکند:
- 0: بدون فشردهسازی
- 1: اشتراکگذاری رشتههای ثابت (Constant string sharing)
- 2: ZIP
- --disable-plugin pluginname
- پلاگین مشخصشده را غیرفعال میکند. برای فهرست پلاگینهای پشتیبانیشده، بخش پلاگینهای jlink را ببینید.
- --endian {little|big}
- ترتیب بایتها (byte order) را برای ایمیج تولیدشده مشخص میکند. مقدار پیشفرض، ساختار معماری سیستم شما است.
- -h یا --help
- پیام راهنما را چاپ میکند.
- --ignore-signing-information
- هنگامی که فایلهای JAR ماژولار امضاشده در ایمیج زمان اجرا پیوند میخورند، از خطای مهلک (fatal error) چشمپوشی میکند. فایلهای مربوط به امضای فایلهای JAR ماژولار امضاشده در ایمیج زمان اجرا کپی نمیشوند.
- --launcher command=module یا --launcher command=module/main
- نام دستور راهانداز (launcher) را برای ماژول یا نام دستور را برای ماژول و کلاس اصلی مشخص میکند (نام ماژول و کلاس اصلی با یک اسلش (/) از هم جدا میشوند).
- --limit-modules mod[,mod...]
- دامنه ماژولهای قابل مشاهده را به ماژولهای موجود در بستار متعدی ماژولهای نامبردهشده، mod، به علاوه ماژول اصلی (در صورت وجود)، و هر ماژول دیگری که در گزینه --add-modules مشخص شده است، محدود میکند.
- --list-plugins
- پلاگینهای در دسترس را که میتوانید از طریق گزینههای خط فرمان به آنها دسترسی داشته باشید فهرست میکند؛ بخش پلاگینهای jlink را ببینید.
- -p یا --module-path modulepath
- مسیر ماژول را مشخص میکند.
- --no-header-files
- فایلهای سرآیند (header files) را حذف میکند.
- --no-man-pages
- صفحات man را حذف میکند.
- --output path
- محل ایمیج زمان اجرای تولیدشده را مشخص میکند.
- --save-opts filename
- گزینههای jlink را در فایل مشخصشده ذخیره میکند.
- --suggest-providers [name, ...]
- ارائهدهندگانی را از مسیر ماژول پیشنهاد میکند که انواع سرویس دادهشده را پیادهسازی کردهاند.
- --version
- اطلاعات نسخه را چاپ میکند.
- @filename
- گزینهها را از فایل مشخصشده میخواند.
-
#Wed Dec 07 00:40:19 EST 2016 --module-path mlib --add-modules com.greetings --output greetingsapp
پلاگینهای JLINK (JLINK PLUG-INS)
نکته:
پلاگینهایی که در این بخش فهرست نشدهاند پشتیبانی نمیشوند و ممکن است دستخوش تغییر شوند.
برای گزینههای پلاگین که نیازمند یک pattern-list هستند، مقدار یک فهرست جداشده با کاما از عناصر است که هر عنصر از یکی از قالبهای زیر استفاده میکند:
- glob-pattern
- glob:glob-pattern
- regex:regex-pattern
- @filename
- •
- filename نام فایلی است که الگوهای مورد استفاده در آن قرار دارند، در هر خط یک الگو.
برای فهرست کامل تمام پلاگینهای در دسترس، دستور jlink --list-plugins را اجرا کنید.
پلاگین compress
- گزینهها
- --compress={0|1|2}[:filter=pattern-list]
- توضیحات
- تمام منابع را در ایمیج خروجی فشرده میکند.
- سطح 0: بدون فشردهسازی
- سطح 1: اشتراکگذاری رشتههای ثابت
- سطح 2: ZIP یک فیلتر اختیاری pattern-list میتواند برای تعیین الگوی فایلهایی که باید گنجانده شوند مشخص شود.
پلاگین include-locales
- گزینهها
- --include-locales=langtag[,langtag]*
- توضیحات
- فهرست محلیسازیها (locales) را شامل میشود که در آن langtag یک برچسب زبان BCP 47 است. این گزینه از تطبیق محلیسازی تعریفشده در RFC 4647 پشتیبانی میکند. اطمینان حاصل کنید که هنگام استفاده از این گزینه، ماژول jdk.localedata را اضافه کرده باشید.
--add-modules jdk.localedata --include-locales=en,ja,*-IN
پلاگین order-resources
- گزینهها
- --order-resources=pattern-list
- توضیحات
- مسیرهای مشخصشده را بر اساس اولویت مرتب میکند. اگر @filename مشخص شده باشد، هر خط در pattern-list باید برای مسیرهای مرتبشونده یک تطابق دقیق باشد.
--order-resources=/module-info.class,@classlist,/java.base/java/lang/
پلاگین strip-debug
- گزینهها
- --strip-debug
- توضیحات
- اطلاعات اشکالزدایی (debug) را از ایمیج خروجی حذف میکند.
پلاگین generate-cds-archive
- گزینهها
- --generate-cds-archive
- توضیحات
- اگر ایمیج زمان اجرا از قابلیت CDS پشتیبانی کند، آرشیو CDS را تولید میکند.
مثالهای JLINK (JLINK EXAMPLES)
دستور زیر یک ایمیج زمان اجرا در دایرکتوری greetingsapp ایجاد میکند. این دستور ماژول com.greetings را پیوند میدهد، که تعریف ماژول آن در دایرکتوری mlib قرار دارد.
-
jlink --module-path mlib --add-modules com.greetings --output greetingsapp
دستور زیر ماژولهای موجود در ایمیج زمان اجرای greetingsapp را فهرست میکند:
-
greetingsapp/bin/java --list-modules com.greetings java.base@11 java.logging@11 org.astro@1.0
دستور زیر یک ایمیج زمان اجرا در دایرکتوری compressedrt ایجاد میکند که نمادهای اشکالزدایی از آن حذف شدهاند، از فشردهسازی برای کاهش فضا استفاده میکند و شامل اطلاعات محلی زبان فرانسوی است:
-
jlink --add-modules jdk.localedata --strip-debug --compress=2 --include-locales=fr --output compressedrt
مثال زیر حجم ایمیج زمان اجرای compressedrt را با fr_rt مقایسه میکند، که نمادهای اشکالزدایی از آن حذف نشدهاند و از فشردهسازی استفاده نمیکند:
-
jlink --add-modules jdk.localedata --include-locales=fr --output fr_rt du -sh ./compressedrt ./fr_rt 23M ./compressedrt 36M ./fr_rt
مثال زیر ارائهدهندگانی را که java.security.Provider را پیادهسازی میکنند فهرست میکند:
-
jlink --suggest-providers java.security.Provider Suggested providers: java.naming provides java.security.Provider used by java.base java.security.jgss provides java.security.Provider used by java.base java.security.sasl provides java.security.Provider used by java.base java.smartcardio provides java.security.Provider used by java.base java.xml.crypto provides java.security.Provider used by java.base jdk.crypto.cryptoki provides java.security.Provider used by java.base jdk.crypto.ec provides java.security.Provider used by java.base jdk.crypto.mscapi provides java.security.Provider used by java.base jdk.security.jgss provides java.security.Provider used by java.base
مثال زیر یک ایمیج زمان اجرای سفارشی به نام mybuild ایجاد میکند که تنها شامل java.naming و jdk.crypto.cryptoki و وابستگیهای آنها است، اما هیچ ارائهدهنده دیگری را شامل نمیشود. توجه داشته باشید که این وابستگیها باید در مسیر ماژول وجود داشته باشند:
-
jlink --add-modules java.naming,jdk.crypto.cryptoki --output mybuild
دستور زیر مشابه دستوری است که ایمیج زمان اجرایی به نام greetingsapp ایجاد میکند، با این تفاوت که ماژولهای حلشده از ماژولهای ریشه را با پیوند خدمات (service binding) پیوند میدهد؛ متد Configuration.resolveAndBind را ببینید.
-
jlink --module-path mlib --add-modules com.greetings --output greetingsapp --bind-services
دستور زیر ماژولهای موجود در ایمیج زمان اجرای greetingsapp ایجادشده توسط این دستور را فهرست میکند:
-
greetingsapp/bin/java --list-modules com.greetings java.base@11 java.compiler@11 java.datatransfer@11 java.desktop@11 java.logging@11 java.management@11 java.management.rmi@11 java.naming@11 java.prefs@11 java.rmi@11 java.security.jgss@11 java.security.sasl@11 java.smartcardio@11 java.xml@11 java.xml.crypto@11 jdk.accessibility@11 jdk.charsets@11 jdk.compiler@11 jdk.crypto.cryptoki@11 jdk.crypto.ec@11 jdk.crypto.mscapi@11 jdk.internal.opt@11 jdk.jartool@11 jdk.javadoc@11 jdk.jdeps@11 jdk.jfr@11 jdk.jlink@11 jdk.localedata@11 jdk.management@11 jdk.management.jfr@11 jdk.naming.dns@11 jdk.naming.rmi@11 jdk.security.auth@11 jdk.security.jgss@11 jdk.zipfs@11 org.astro@1.0
| 2026 | JDK 25.0.4.1 |