.\" 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.3.1 .\" .TH "JLINK" "1" "2021" "JDK 17" "JDK Commands" .hy .SH "نام (NAME)" .PP jlink \- سرهم‌بندی و بهینه‌سازی مجموعه‌ای از ماژول‌ها و وابستگی‌های آن‌ها در یک ایمیج زمان اجرای سفارشی .SH "خلاصه دستور (SYNOPSIS)" .PP \f[CB]jlink\f[R] [\f[I]options\f[R]] \f[CB]\-\-module\-path\f[R] \f[I]modulepath\f[R] \f[CB]\-\-add\-modules\f[R] \f[I]module\f[R] [, \f[I]module\f[R]...] .TP .B \f[I]options\f[R] گزینه‌های خط فرمان که با فاصله از هم جدا می‌شوند. بخش \f[B]گزینه‌های jlink\f[R] را ببینید. .RS .RE .TP .B \f[I]modulepath\f[R] مسیری که ابزار \f[CB]jlink\f[R] ماژول‌های قابل‌مشاهده را در آن پیدا می‌کند. این ماژول‌ها می‌توانند فایل‌های JAR مدولار، فایل‌های JMOD یا ماژول‌های بازشده (exploded modules) باشند. .RS .RE .TP .B \f[I]module\f[R] نام ماژول‌هایی که باید به ایمیج زمان اجرا افزوده شوند. ابزار \f[CB]jlink\f[R] این ماژول‌ها و وابستگی‌های متعدی آن‌ها را اضافه می‌کند. .RS .RE .SH "توضیحات (DESCRIPTION)" .PP ابزار \f[CB]jlink\f[R] مجموعه‌ای از ماژول‌ها را به همراه وابستگی‌های متعدی آن‌ها پیوند می‌دهد تا یک ایمیج زمان اجرای سفارشی بسازد. .PP \f[B]نکته:\f[R] .PP توسعه‌دهندگان خود مسئول به‌روزرسانی ایمیج‌های زمان اجرای سفارشی‌شان هستند. .SH "گزینه‌های JLINK (JLINK OPTIONS)" .TP .B \f[CB]\-\-add\-modules\f[R] \f[I]mod\f[R] [\f[CB],\f[R] \f[I]mod\f[R]...] ماژول‌های نام‌برده، \f[I]mod\f[R]، را به مجموعه پیش‌فرض ماژول‌های ریشه اضافه می‌کند. مجموعه پیش‌فرض ماژول‌های ریشه خالی است. .RS .RE .TP .B \f[CB]\-\-bind\-services\f[R] ماژول‌های ارائه‌دهنده سرویس و وابستگی‌های آن‌ها را پیوند می‌دهد. .RS .RE .TP .B \f[CB]\-c\ ={0|1|2}\f[R] یا \f[CB]\-\-compress={0|1|2}\f[R] فعال‌سازی فشرده‌سازی منابع: .RS .IP \[bu] 2 \f[CB]0\f[R]: بدون فشرده‌سازی .IP \[bu] 2 \f[CB]1\f[R]: اشتراک رشته‌های ثابت .IP \[bu] 2 \f[CB]2\f[R]: ZIP .RE .TP .B \f[CB]\-\-disable\-plugin\f[R] \f[I]pluginname\f[R] پلاگین مشخص‌شده را غیرفعال می‌کند. برای دیدن فهرست پلاگین‌های پشتیبانی‌شده، بخش \f[B]پلاگین‌های jlink\f[R] را ببینید. .RS .RE .TP .B \f[CB]\-\-endian\f[R] {\f[CB]little\f[R]|\f[CB]big\f[R]} ترتیب بایت (byte order) ایمیج تولیدشده را مشخص می‌کند. مقدار پیش‌فرض، قالب معماری سیستم شما است. .RS .RE .TP .B \f[CB]\-h\f[R] یا \f[CB]\-\-help\f[R] پیام راهنما را چاپ می‌کند. .RS .RE .TP .B \f[CB]\-\-ignore\-signing\-information\f[R] از ایجاد خطای مهلک هنگام پیوند دادن فایل‌های JAR مدولار امضاشده در ایمیج زمان اجرا جلوگیری می‌کند. فایل‌های مربوط به امضا در JARهای مدولار امضاشده در ایمیج زمان اجرا کپی نمی‌شوند. .RS .RE .TP .B \f[CB]\-\-launcher\f[R] \f[I]command\f[R]\f[CB]=\f[R]\f[I]module\f[R] یا \f[CB]\-\-launcher\f[R] \f[I]command\f[R]\f[CB]=\f[R]\f[I]module\f[R]\f[CB]/\f[R]\f[I]main\f[R] نام دستور اجراکننده (launcher) را برای ماژول یا نام دستور را برای ماژول و کلاس اصلی مشخص می‌کند (نام‌های ماژول و کلاس اصلی با یک اسلش (\f[CB]/\f[R]) جدا می‌شوند). .RS .RE .TP .B \f[CB]\-\-limit\-modules\f[R] \f[I]mod\f[R] [\f[CB],\f[R] \f[I]mod\f[R]...] گستره ماژول‌های قابل‌مشاهده را به ماژول‌های موجود در بستار متعدی ماژول‌های نام‌برده، \f[CB]mod\f[R]، به‌علاوه ماژول اصلی (در صورت وجود)، به‌علاوه هر ماژول دیگری که در گزینه \f[CB]\-\-add\-modules\f[R] مشخص شده، محدود می‌کند. .RS .RE .TP .B \f[CB]\-\-list\-plugins\f[R] پلاگین‌های دردسترس را که می‌توانید از طریق گزینه‌های خط فرمان به آن‌ها دسترسی پیدا کنید فهرست می‌کند؛ بخش \f[B]پلاگین‌های jlink\f[R] را ببینید. .RS .RE .TP .B \f[CB]\-p\f[R] یا \f[CB]\-\-module\-path\f[R] \f[I]modulepath\f[R] مسیر ماژول را مشخص می‌کند. .RS .PP اگر این گزینه مشخص نشود، مسیر ماژول پیش‌فرض \f[CB]$JAVA_HOME/jmods\f[R] خواهد بود. این دایرکتوری حاوی ماژول \f[CB]java.base\f[R] و سایر ماژول‌های استاندارد و JDK است. اگر این گزینه مشخص شود اما ماژول \f[CB]java.base\f[R] از طریق آن قابل حل نباشد، دستور \f[CB]jlink\f[R] مقدار \f[CB]$JAVA_HOME/jmods\f[R] را به انتهای مسیر ماژول اضافه می‌کند. .RE .TP .B \f[CB]\-\-no\-header\-files\f[R] فایل‌های سرآیند را مستثنی می‌کند. .RS .RE .TP .B \f[CB]\-\-no\-man\-pages\f[R] صفحات man را مستثنی می‌کند. .RS .RE .TP .B \f[CB]\-\-output\f[R] \f[I]path\f[R] مکان ایمیج زمان اجرای تولیدشده را مشخص می‌کند. .RS .RE .TP .B \f[CB]\-\-save\-opts\f[R] \f[I]filename\f[R] گزینه‌های \f[CB]jlink\f[R] را در فایل مشخص‌شده ذخیره می‌کند. .RS .RE .TP .B \f[CB]\-\-suggest\-providers\f[R] [\f[I]name\f[R]\f[CB],\f[R] ...] ارائه‌دهندگانی از مسیر ماژول را پیشنهاد می‌دهد که انواع سرویس داده‌شده را پیاده‌سازی می‌کنند. .RS .RE .TP .B \f[CB]\-\-version\f[R] اطلاعات نسخه را چاپ می‌کند. .RS .RE .TP .B \f[CB]\@\f[R]\f[I]filename\f[R] گزینه‌ها را از فایل مشخص‌شده می‌خواند. .RS .PP فایل گزینه‌ها یک فایل متنی است که شامل گزینه‌ها و مقادیری است که شما معمولاً در خط فرمان وارد می‌کنید. گزینه‌ها ممکن است در یک خط یا در چندین خط قرار گیرند. نمی‌توانید از متغیرهای محیطی برای نام مسیرها استفاده کنید. می‌توانید با قرار دادن یک نماد هش (\f[CB]#\f[R]) در ابتدای خط، آن خط را تبدیل به توضیح (کامنت) کنید..PP در ادامه مثالی از یک فایل گزینه‌ها برای دستور \f[CB]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[CB]glob:\f[R]\f[I]glob\-pattern\f[R] .IP \[bu] 2 \f[CB]regex:\f[R]\f[I]regex\-pattern\f[R] .IP \[bu] 2 \f[CB]\@\f[R]\f[I]filename\f[R] .RS 2 .IP \[bu] 2 \f[I]filename\f[R] نام فایلی است شامل الگوهای مورد استفاده، هر الگو در یک خط. .RE .PP برای دریافت فهرست کاملی از تمام افزونه‌های موجود، دستور \f[CB]jlink\ \-\-list\-plugins\f[R] را اجرا کنید. .SS افزونه‌ی \f[CB]compress\f[R] .TP .B گزینه‌ها \f[CB]\-\-compress=\f[R]{\f[CB]0\f[R]|\f[CB]1\f[R]|\f[CB]2\f[R]}[\f[CB]:filter=\f[R]\f[I]pattern\-list\f[R]] .RS .RE .TP .B توضیحات همه منابع را در ایمیج خروجی فشرده می‌کند. .RS .IP \[bu] 2 سطح ۰: بدون فشرده‌سازی .IP \[bu] 2 سطح ۱: اشتراک رشته‌های ثابت .IP \[bu] 2 سطح ۲: ZIP .PP یک فیلتر اختیاری \f[I]pattern\-list\f[R] می‌تواند برای تعیین الگوی فایل‌هایی که باید گنجانده شوند مشخص گردد. .RE .SS افزونه‌ی \f[CB]include\-locales\f[R] .TP .B گزینه‌ها \f[CB]\-\-include\-locales=\f[R]\f[I]langtag\f[R][\f[CB],\f[R]\f[I]langtag\f[R]]* .RS .RE .TP .B توضیحات فهرستی از محلی‌سازی‌ها (locales) را شامل می‌شود که در آن \f[I]langtag\f[R] یک برچسب زبان BCP 47 است. این گزینه از تطبیق محلی‌سازی همان‌گونه که در RFC 4647 تعریف شده است پشتیبانی می‌کند. هنگام استفاده از این گزینه، مطمئن شوید که ماژول jdk.localedata را اضافه کرده‌اید. .RS .PP مثال: .RS .PP \f[CB]\-\-add\-modules\ jdk.localedata\ \-\-include\-locales=en,ja,*\-IN\f[R] .RE .RE .SS افزونه‌ی \f[CB]order\-resources\f[R] .TP .B گزینه‌ها \f[CB]\-\-order\-resources=\f[R]\f[I]pattern\-list\f[R] .RS .RE .TP .B توضیحات مسیرهای مشخص‌شده را بر اساس اولویت مرتب می‌کند. اگر \f[CB]\@\f[R]\f[I]filename\f[R] مشخص شده باشد، هر خط در \f[I]pattern\-list\f[R] باید دقیقاً با مسیرهایی که قرار است مرتب شوند مطابقت داشته باشد. .RS .PP مثال: .RS .PP \f[CB]\-\-order\-resources=/module\-info.class,\@classlist,/java.base/java/lang/\f[R] .RE .RE.SS پلاگین \f[CB]strip\-debug\f[R] .TP .B گزینه‌ها \f[CB]\-\-strip\-debug\f[R] .RS .RE .TP .B توضیحات اطلاعات اشکال‌زدایی (debug) را از ایمیج خروجی حذف می‌کند. .RS .RE .SH "مثال‌های JLINK (JLINK EXAMPLES)" .PP دستور زیر یک ایمیج زمان اجرا در دایرکتوری \f[CB]greetingsapp\f[R] ایجاد می‌کند. این دستور ماژول \f[CB]com.greetings\f[R] را که تعریف آن در دایرکتوری \f[CB]mlib\f[R] قرار دارد، پیوند (link) می‌دهد. .IP .nf \f[CB] jlink\ \-\-module\-path\ mlib\ \-\-add\-modules\ com.greetings\ \-\-output\ greetingsapp \f[R] .fi .PP دستور زیر ماژول‌های موجود در ایمیج زمان اجرای \f[CB]greetingsapp\f[R] را فهرست می‌کند: .IP .nf \f[CB] greetingsapp/bin/java\ \-\-list\-modules com.greetings java.base\@11 java.logging\@11 org.astro\@1.0 \f[R] .fi .PP دستور زیر یک ایمیج زمان اجرا در دایرکتوری compressedrt ایجاد می‌کند که نمادهای اشکال‌زدایی از آن حذف شده‌اند، برای کاهش فضا از فشرده‌سازی استفاده می‌کند و شامل اطلاعات محلی (locale) زبان فرانسوی است: .IP .nf \f[CB] jlink\ \-\-add\-modules\ jdk.localedata\ \-\-strip\-debug\ \-\-compress=2\ \-\-include\-locales=fr\ \-\-output\ compressedrt \f[R] .fi .PP مثال زیر اندازهٔ ایمیج زمان اجرای \f[CB]compressedrt\f[R] را با \f[CB]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[CB]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[CB]mybuild\f[R] ایجاد می‌کند که تنها شامل \f[CB]java.naming\f[R] و \f[CB]jdk.crypto.cryptoki\f[R] و وابستگی‌های آن‌ها است، اما هیچ ارائه‌دهندهٔ دیگری را در بر نمی‌گیرد. توجه داشته باشید که این وابستگی‌ها باید در مسیر ماژول (module path) وجود داشته باشند: .IP .nf \f[CB] jlink\ \-\-add\-modules\ java.naming,jdk.crypto.cryptoki\ \-\-output\ mybuild \f[R] .fi .PP دستور زیر مشابه دستوری است که ایمیج زمان اجرایی با نام \f[CB]greetingsapp\f[R] ایجاد می‌کند، با این تفاوت که ماژول‌های برطرف‌شده از ماژول‌های ریشه را با پیوند سرویس (service binding) پیوند می‌دهد؛ متد \f[B]\f[BC]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\@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 \f[R] .fi