.\" Copyright (c) 2017, 2019, 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.19.2 .\" .\" Define V font for inline verbatim, using C font in formats .\" that render this, and otherwise B font. .ie "\f[CB]x\f[R]"x" \{\ . ftr V B . ftr VI BI . ftr VB B . ftr VBI BI .\} .el \{\ . ftr V CR . ftr VI CI . ftr VB CB . ftr VBI CBI .\} .TH "JLINK" "1" "2023" "JDK 21" "دستورات JDK" .hy .SH "نام (NAME)" .PP jlink-openjdk21 \- مونتاژ و ایجاد یک تصویر زمان اجرای سفارشی جاوا در OpenJDK 21 .SH "خلاصه دستور (SYNOPSIS)" .PP \f[V]jlink\f[R] [\f[I]گزینه‌ها\f[R]] \f[V]--module-path\f[R] \f[I]مسیر_ماژول\f[R] \f[V]--add-modules\f[R] \f[I]ماژول\f[R] [, \f[I]ماژول\f[R]...] .TP \f[I]گزینه‌ها (options)\f[R] گزینه‌های خط فرمان که با فاصله از هم جدا شده‌اند. بخش \f[B]گزینه‌های JLINK\f[R] را ببینید. .TP \f[I]مسیر_ماژول (modulepath)\f[R] مسیری که ابزار \f[V]jlink\f[R] ماژول‌های قابل مشاهده را در آن پیدا می‌کند. این ماژول‌ها می‌توانند فایل‌های JAR ماژولار، فایل‌های JMOD یا ماژول‌های پوشه‌ای (exploded) باشند. .TP \f[I]ماژول (module)\f[R] نام ماژول‌هایی که باید به تصویر زمان اجرا اضافه شوند. ابزار \f[V]jlink\f[R] این ماژول‌ها و وابستگی‌های گذرا (transitive) آن‌ها را اضافه می‌کند. .SH "توضیحات (DESCRIPTION)" .PP ابزار \f[V]jlink\f[R] مجموعه‌ای از ماژول‌ها را به همراه وابستگی‌های گذرای آن‌ها پیوند (link) می‌دهد تا یک تصویر زمان اجرای سفارشی ایجاد کند. .PP \f[B]نکته:\f[R] .PP توسعه‌دهندگان مسئول به‌روزرسانی تصاویر زمان اجرای سفارشی خود هستند. .SH "گزینه‌های JLINK (JLINK OPTIONS)" .TP \f[V]--add-modules\f[R] \f[I]mod\f[R] [\f[V],\f[R] \f[I]mod\f[R]...] ماژول‌های مشخص‌شده با \f[I]mod\f[R] را به مجموعه پیش‌فرض ماژول‌های ریشه اضافه می‌کند. مجموعه پیش‌فرض ماژول‌های ریشه خالی است. .TP \f[V]--bind-services\f[R] ماژول‌های ارائه‌دهنده سرویس (service provider) و وابستگی‌های آن‌ها را پیوند می‌دهد. .TP \f[V]-c ={0|1|2}\f[R] یا \f[V]--compress={0|1|2}\f[R] فشرده‌سازی منابع را فعال می‌کند: .RS .IP \[bu] 2 \f[V]0\f[R]: بدون فشرده‌سازی .IP \[bu] 2 \f[V]1\f[R]: اشتراک‌گذاری رشته‌های ثابت (Constant string sharing) .IP \[bu] 2 \f[V]2\f[R]: فشرده‌سازی با الگوریتم ZIP .RE .TP \f[V]--disable-plugin\f[R] \f[I]pluginname\f[R] پلاگین مشخص‌شده را غیرفعال می‌کند. برای مشاهده فهرست پلاگین‌های پشتیبانی‌شده به بخش \f[B]پلاگین‌های JLINK\f[R] مراجعه کنید. .TP \f[V]--endian\f[R] {\f[V]little\f[R]|\f[V]big\f[R]} ترتیب بایت‌ها (byte order / endianness) در تصویر تولیدشده را مشخص می‌کند. مقدار پیش‌فرض، فرمت معماری سیستم شما است. .TP \f[V]-h\f[R] یا \f[V]--help\f[R] پیام راهنما را چاپ می‌کند. .TP \f[V]--ignore-signing-information\f[R] از بروز خطای مهلک هنگام پیوند دادن فایل‌های JAR ماژولار امضاشده در تصویر زمان اجرا جلوگیری می‌کند. فایل‌های مربوط به امضا در فایل‌های JAR ماژولار امضاشده به تصویر زمان اجرا کپی نمی‌شوند. .TP \f[V]--launcher\f[R] \f[I]command\f[R]\f[V]=\f[R]\f[I]module\f[R] یا \f[V]--launcher\f[R] \f[I]command\f[R]\f[V]=\f[R]\f[I]module\f[R]\f[V]/\f[R]\f[I]main\f[R] نام دستور راه‌انداز (launcher) برای ماژول یا نام دستور برای ماژول و کلاس اصلی (main class) را مشخص می‌کند (نام ماژول و کلاس اصلی با یک اسلش (\f[V]/\f[R]) از هم جدا می‌شوند). .TP \f[V]--limit-modules\f[R] \f[I]mod\f[R] [\f[V],\f[R] \f[I]mod\f[R]...] دنیای ماژول‌های قابل مشاهده را به ماژول‌های موجود در بستار گذرای (transitive closure) ماژول‌های مشخص‌شده \f[V]mod\f[R]، به‌علاوه ماژول اصلی (در صورت وجود)، و هر ماژول دیگری که در گزینه \f[V]--add-modules\f[R] مشخص شده محدود می‌کند. .TP \f[V]--list-plugins\f[R] فهرست پلاگین‌های موجود را نمایش می‌دهد که می‌توانید از طریق گزینه‌های خط فرمان به آن‌ها دسترسی داشته باشید؛ بخش \f[B]پلاگین‌های JLINK\f[R] را ببینید. .TP \f[V]-p\f[R] یا \f[V]--module-path\f[R] \f[I]modulepath\f[R] مسیر ماژول را مشخص می‌کند. .RS .PP اگر این گزینه مشخص نشود، مسیر پیش‌فرض ماژول \f[V]$JAVA_HOME/jmods\f[R] خواهد بود. این دایرکتوری حاوی ماژول \f[V]java.base\f[R] و سایر ماژول‌های استاندارد و ماژول‌های JDK است. اگر این گزینه مشخص شود اما ماژول \f[V]java.base\f[R] در آن پیدا نشود، دستور \f[V]jlink\f[R] مسیر \f[V]$JAVA_HOME/jmods\f[R] را به انتهای مسیر ماژول اضافه می‌کند. .RE .TP \f[V]--no-header-files\f[R] فایل‌های هدر (header files) را حذف می‌کند. .TP \f[V]--no-man-pages\f[R] صفحات راهنما (man pages) را حذف می‌کند. .TP \f[V]--output\f[R] \f[I]path\f[R] مسیر ذخیره تصویر زمان اجرای تولیدشده را مشخص می‌کند. .TP \f[V]--save-opts\f[R] \f[I]filename\f[R] گزینه‌های \f[V]jlink\f[R] را در فایل مشخص‌شده ذخیره می‌کند. .TP \f[V]--suggest-providers\f[R] [\f[I]name\f[R]\f[V],\f[R] ...] ارائه‌دهندگانی از مسیر ماژول را پیشنهاد می‌دهد که انواع سرویس‌های داده‌شده را پیاده‌سازی کرده‌اند. .TP \f[V]--version\f[R] اطلاعات نسخه را چاپ می‌کند. .TP \f[V]\[at]\f[R]\f[I]filename\f[R] گزینه‌ها را از فایل مشخص‌شده می‌خواند. .RS .PP فایل گزینه‌ها یک فایل متنی است که حاوی گزینه‌ها و مقادیری است که معمولاً در اعلان خط فرمان وارد می‌کنید. گزینه‌ها می‌توانند در یک خط یا در چندین خط قرار گیرند. نمی‌توانید متغیرهای محیطی را برای نام مسیرها مشخص کنید. می‌توانید با قرار دادن نماد هش (\f[V]#\f[R]) در ابتدای خط، آن خط را به کامنت تبدیل کنید. .PP در ادامه نمونه‌ای از یک فایل گزینه‌ها برای دستور \f[V]jlink\f[R] آمده است: .IP .nf \f[CB] #Wed Dec 07 00:40:19 EST 2016 --module-path mlib --add-modules com.greetings --output greetingsapp \f[R] .fi .RE .SH "پلاگین‌های JLINK (JLINK PLUG-INS)" .PP \f[B]نکته:\f[R] .PP پلاگین‌هایی که در این بخش فهرست نشده‌اند پشتیبانی نمی‌شوند و ممکن است تغییر کنند. .PP برای گزینه‌های پلاگین که به یک \f[I]pattern-list\f[R] (فهرست الگو) نیاز دارند، مقدار مورد نظر یک فهرست جداشده با کاما از عناصر است که هر عنصر یکی از قالب‌های زیر را دارد: .IP \[bu] 2 \f[I]glob-pattern\f[R] .IP \[bu] 2 \f[V]glob:\f[R]\f[I]glob-pattern\f[R] .IP \[bu] 2 \f[V]regex:\f[R]\f[I]regex-pattern\f[R] .IP \[bu] 2 \f[V]\[at]\f[R]\f[I]filename\f[R] .RS 2 .IP \[bu] 2 \f[I]filename\f[R] نام فایلی است که الگوهای مورد استفاده را در خود دارد، هر الگو در یک خط. .RE .PP برای مشاهده فهرست کامل تمامی پلاگین‌های موجود، دستور \f[V]jlink --list-plugins\f[R] را اجرا کنید. .SS "پلاگین \f[V]compress\f[R]" .TP گزینه‌ها \f[V]--compress=\f[R]{\f[V]0\f[R]|\f[V]1\f[R]|\f[V]2\f[R]}[\f[V]:filter=\f[R]\f[I]pattern-list\f[R]] .TP توضیحات تمام منابع موجود در تصویر خروجی را فشرده می‌کند. .RS .IP \[bu] 2 سطح 0: بدون فشرده‌سازی .IP \[bu] 2 سطح 1: اشتراک‌گذاری رشته‌های ثابت .IP \[bu] 2 سطح 2: فشرده‌سازی با الگوریتم ZIP .PP می‌توان یک فیلتر اختیاری \f[I]pattern-list\f[R] برای تعیین الگوی فایل‌های مشمول مشخص کرد. .RE .SS "پلاگین \f[V]include-locales\f[R]" .TP گزینه‌ها \f[V]--include-locales=\f[R]\f[I]langtag\f[R][\f[V],\f[R]\f[I]langtag\f[R]]* .TP توضیحات فهرستی از زبان‌ها و محلی‌ها (locales) را شامل می‌شود که در آن \f[I]langtag\f[R] یک تگ زبان BCP 47 است. این گزینه از تطبیق لوکال طبق تعریف RFC 4647 پشتیبانی می‌کند. هنگام استفاده از این گزینه، مطمئن شوید که ماژول jdk.localedata را اضافه کرده‌اید. .RS .PP مثال: .RS .PP \f[V]--add-modules jdk.localedata --include-locales=en,ja,*-IN\f[R] .RE .RE .SS "پلاگین \f[V]order-resources\f[R]" .TP گزینه‌ها \f[V]--order-resources=\f[R]\f[I]pattern-list\f[R] .TP توضیحات مسیرهای مشخص‌شده را بر اساس اولویت مرتب می‌کند. اگر \f[V]\[at]\f[R]\f[I]filename\f[R] مشخص شده باشد، هر خط در \f[I]pattern-list\f[R] باید دقیقاً با مسیرهای مورد نظر برای مرتب‌سازی مطابقت داشته باشد. .RS .PP مثال: .RS .PP \f[V]--order-resources=/module-info.class,\[at]classlist,/java.base/java/lang/\f[R] .RE .RE .SS "پلاگین \f[V]strip-debug\f[R]" .TP گزینه‌ها \f[V]--strip-debug\f[R] .TP توضیحات اطلاعات اشکال‌زدایی (debug information) را از تصویر خروجی حذف می‌کند. .SS "پلاگین \f[V]generate-cds-archive\f[R]" .TP گزینه‌ها \f[V]--generate-cds-archive\f[R] .TP توضیحات در صورتی که تصویر زمان اجرا از ویژگی CDS پشتیبانی کند، بایگانی CDS را تولید می‌کند. .SH "مثال‌های JLINK (JLINK EXAMPLES)" .PP دستور زیر یک تصویر زمان اجرا در دایرکتوری \f[V]greetingsapp\f[R] ایجاد می‌کند. این دستور ماژول \f[V]com.greetings\f[R] را پیوند می‌دهد که تعریف ماژول آن در دایرکتوری \f[V]mlib\f[R] قرار دارد. .IP .nf \f[CB] jlink --module-path mlib --add-modules com.greetings --output greetingsapp \f[R] .fi .PP دستور زیر ماژول‌های موجود در تصویر زمان اجرای \f[V]greetingsapp\f[R] را فهرست می‌کند: .IP .nf \f[CB] greetingsapp/bin/java --list-modules com.greetings java.base\[at]11 java.logging\[at]11 org.astro\[at]1.0 \f[R] .fi .PP دستور زیر یک تصویر زمان اجرا در دایرکتوری compressedrt ایجاد می‌کند که نمادهای دیباگ از آن حذف شده، از فشرده‌سازی برای کاهش حجم استفاده می‌کند و شامل اطلاعات محلی زبان فرانسوی است: .IP .nf \f[CB] jlink --add-modules jdk.localedata --strip-debug --compress=2 --include-locales=fr --output compressedrt \f[R] .fi .PP مثال زیر اندازه تصویر زمان اجرای \f[V]compressedrt\f[R] را با \f[V]fr_rt\f[R] مقایسه می‌کند که در آن نمادهای دیباگ حذف نشده و از فشرده‌سازی استفاده نشده است: .IP .nf \f[CB] jlink --add-modules jdk.localedata --include-locales=fr --output fr_rt du -sh ./compressedrt ./fr_rt 23M ./compressedrt 36M ./fr_rt \f[R] .fi .PP مثال زیر ارائه‌دهندگانی را فهرست می‌کند که رابط \f[V]java.security.Provider\f[R] را پیاده‌سازی می‌کنند: .IP .nf \f[CB] 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 \f[R] .fi .PP مثال زیر یک تصویر زمان اجرای سفارشی به نام \f[V]mybuild\f[R] ایجاد می‌کند که فقط شامل \f[V]java.naming\f[R] و \f[V]jdk.crypto.cryptoki\f[R] و وابستگی‌های آن‌ها است و هیچ ارائه‌دهنده دیگری را شامل نمی‌شود. توجه داشته باشید که این وابستگی‌ها باید در مسیر ماژول وجود داشته باشند: .IP .nf \f[CB] jlink --add-modules java.naming,jdk.crypto.cryptoki --output mybuild \f[R] .fi .PP دستور زیر مشابه دستوری است که تصویر زمان اجرای \f[V]greetingsapp\f[R] را ایجاد می‌کند، با این تفاوت که ماژول‌های حل‌شده از ماژول‌های ریشه را با اتصال سرویس (service binding) پیوند می‌دهد؛ متد \f[B]\f[VB]Configuration.resolveAndBind\f[B]\f[R] را ببینید. .IP .nf \f[CB] jlink --module-path mlib --add-modules com.greetings --output greetingsapp --bind-services \f[R] .fi .PP دستور زیر ماژول‌های موجود در تصویر زمان اجرای greetingsapp ایجادشده توسط این دستور را فهرست می‌کند: .IP .nf \f[CB] greetingsapp/bin/java --list-modules com.greetings java.base\[at]11 java.compiler\[at]11 java.datatransfer\[at]11 java.desktop\[at]11 java.logging\[at]11 java.management\[at]11 java.management.rmi\[at]11 java.naming\[at]11 java.prefs\[at]11 java.rmi\[at]11 java.security.jgss\[at]11 java.security.sasl\[at]11 java.smartcardio\[at]11 java.xml\[at]11 java.xml.crypto\[at]11 jdk.accessibility\[at]11 jdk.charsets\[at]11 jdk.compiler\[at]11 jdk.crypto.cryptoki\[at]11 jdk.crypto.ec\[at]11 jdk.crypto.mscapi\[at]11 jdk.internal.opt\[at]11 jdk.jartool\[at]11 jdk.javadoc\[at]11 jdk.jdeps\[at]11 jdk.jfr\[at]11 jdk.jlink\[at]11 jdk.localedata\[at]11 jdk.management\[at]11 jdk.management.jfr\[at]11 jdk.naming.dns\[at]11 jdk.naming.rmi\[at]11 jdk.security.auth\[at]11 jdk.security.jgss\[at]11 jdk.zipfs\[at]11 org.astro\[at]1.0 \f[R] .fi