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 مسیر ماژول را مشخص می‌کند. اگر این گزینه مشخص نشود، مسیر پیش‌فرض ماژول $JAVA_HOME/jmods خواهد بود. این دایرکتوری شامل ماژول java.base و سایر ماژول‌های استاندارد و JDK است. اگر این گزینه مشخص شود اما ماژول java.base در آن پیدا نشود، دستور jlink مسیر $JAVA_HOME/jmods را به انتهای مسیر ماژول اضافه می‌کند. --no-header-files فایل‌های سرآیند (header files) را حذف می‌کند. --no-man-pages صفحات man را حذف می‌کند. --output path محل ایمیج زمان اجرای تولیدشده را مشخص می‌کند. --save-opts filename گزینه‌های jlink را در فایل مشخص‌شده ذخیره می‌کند. --suggest-providers [name, ...] ارائه‌دهندگانی را از مسیر ماژول پیشنهاد می‌کند که انواع سرویس داده‌شده را پیاده‌سازی کرده‌اند. --version اطلاعات نسخه را چاپ می‌کند. @filename گزینه‌ها را از فایل مشخص‌شده می‌خواند. فایل گزینه‌ها یک فایل متنی است که شامل گزینه‌ها و مقادیری است که معمولاً در خط فرمان وارد می‌کنید. گزینه‌ها ممکن است در یک خط یا در چند خط قرار بگیرند. نمی‌توانید متغیرهای محیطی را برای نام مسیرها مشخص کنید. می‌توانید با قرار دادن نماد هش (#) در ابتدای خط، آن خط را تبدیل به توضیح (کامنت) کنید. در زیر نمونه‌ای از یک فایل گزینه‌ها برای دستور jlink آورده شده است: #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 JDK 25.0.4.1 2026 JLINK(1)