.\" Copyright (c) 2013, 2023, 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 "JDEPS" "1" "2023" "JDK 21" "دستورات JDK" .hy .SH "نام (NAME)" .PP jdeps-openjdk21 \- تحلیل‌گر وابستگی‌های کلاس‌ها و بسته‌های جاوا در OpenJDK 21 .SH "خلاصه دستور (SYNOPSIS)" .PP \f[V]jdeps\f[R] [\f[I]options\f[R]] \f[I]path\f[R] ... .TP \f[I]options\f[R] گزینه‌های خط فرمان. برای مشاهده توضیحات دقیق گزینه‌های قابل استفاده، ببینید: .RS .IP \[bu] 2 \f[B]گزینه‌های عمومی\f[R] .IP \[bu] 2 \f[B]گزینه‌های تحلیل وابستگی ماژول\f[R] .IP \[bu] 2 \f[B]گزینه‌های فیلتر کردن وابستگی‌ها\f[R] .IP \[bu] 2 \f[B]گزینه‌های فیلتر کردن کلاس‌های مورد تحلیل\f[R] .RE .TP \f[I]path\f[R] مسیر فایل \f[V].class\f[R]، دایرکتوری، یا فایل JAR مورد تحلیل. .SH "توضیحات (DESCRIPTION)" .PP دستور \f[V]jdeps\f[R] وابستگی‌های سطح بسته (package-level) یا سطح کلاس (class-level) فایل‌های کلاس جاوا را نمایش می‌دهد. کلاس ورودی می‌تواند مسیر یک فایل \f[V].class\f[R]، یک دایرکتوری، یک فایل JAR، یا نام کامل کلاس (fully qualified class name) برای تحلیل تمام فایل‌های کلاس باشد. گزینه‌ها نوع خروجی را تعیین می‌کنند. به طور پیش‌فرض، دستور \f[V]jdeps\f[R] وابستگی‌ها را در خروجی استاندارد سیستم می‌نویسد. این دستور همچنین می‌تواند وابستگی‌ها را به زبان DOT تولید کند (گزینه \f[V]-dotoutput\f[R] را ببینید). .SH "گزینه‌های عمومی (POSSIBLE OPTIONS)" .TP \f[V]-?\f[R] یا \f[V]-h\f[R] یا \f[V]--help\f[R] پیام راهنما را چاپ می‌کند. .TP \f[V]-dotoutput\f[R] \f[I]dir\f[R] یا \f[V]--dot-output\f[R] \f[I]dir\f[R] دایرکتوری مقصد را برای خروجی فایل‌های DOT مشخص می‌کند. در صورت مشخص شدن این گزینه، دستور \f[V]jdeps\f[R] برای هر آرشیو تحلیل‌شده یک فایل \f[V].dot\f[R] به نام \f[V]archive-file-name.dot\f[R] شامل فهرست وابستگی‌ها و یک فایل خلاصه به نام \f[V]summary.dot\f[R] شامل فهرست وابستگی‌های میان فایل‌های آرشیو تولید می‌کند. .TP \f[V]-s\f[R] یا \f[V]-summary\f[R] فقط خلاصه وابستگی‌ها را چاپ می‌کند. .TP \f[V]-v\f[R] یا \f[V]-verbose\f[R] تمام وابستگی‌های سطح کلاس را چاپ می‌کند. این گزینه معادل دستور زیر است: .RS .RS .PP \f[V]-verbose:class -filter:none\f[R] .RE .RE .TP \f[V]-verbose:package\f[R] وابستگی‌های سطح بسته را چاپ می‌کند و به صورت پیش‌فرض، وابستگی‌های درون همان بسته را نادیده می‌گیرد. .TP \f[V]-verbose:class\f[R] وابستگی‌های سطح کلاس را چاپ می‌کند و به صورت پیش‌فرض، وابستگی‌های درون همان آرشیو را نادیده می‌گیرد. .TP \f[V]-apionly\f[R] یا \f[V]--api-only\f[R] تحلیل را به APIها محدود می‌کند؛ برای مثال، وابستگی‌های ناشی از امضای اعضای \f[V]public\f[R] و \f[V]protected\f[R] کلاس‌های عمومی شامل نوع فیلد، نوع پارامترهای متد، نوع مقدار بازگشتی، و انواع استثناهای بررسی‌شده (checked exceptions). .TP \f[V]-jdkinternals\f[R] یا \f[V]--jdk-internals\f[R] وابستگی‌های سطح کلاس به APIهای داخلی JDK را پیدا می‌کند. به طور پیش‌فرض، این گزینه تمام کلاس‌های مشخص‌شده در گزینه \f[V]--classpath\f[R] و فایل‌های ورودی را تحلیل می‌کند، مگر آنکه گزینه \f[V]-include\f[R] مشخص شده باشد. نمی‌توان از این گزینه همراه با گزینه‌های \f[V]-p\f[R]، \f[V]-e\f[R]، و \f[V]-s\f[R] استفاده کرد. .RS .PP \f[B]هشدار\f[R]: APIهای داخلی JDK غیرقابل دسترس هستند. .RE .TP \f[V]-cp\f[R] \f[I]path\f[R]، \f[V]-classpath\f[R] \f[I]path\f[R]، یا \f[V]--class-path\f[R] \f[I]path\f[R] مسیر جستجوی فایل‌های کلاس را مشخص می‌کند. .TP \f[V]--module-path\f[R] \f[I]module-path\f[R] مسیر ماژول‌ها (module path) را مشخص می‌کند. .TP \f[V]--upgrade-module-path\f[R] \f[I]module-path\f[R] مسیر ماژول‌های ارتقایی (upgrade module path) را مشخص می‌کند. .TP \f[V]--system\f[R] \f[I]java-home\f[R] یک مسیر جایگزین برای ماژول‌های سیستم مشخص می‌کند. .TP \f[V]--add-modules\f[R] \f[I]module-name\f[R][\f[V],\f[R] \f[I]module-name\f[R]...] ماژول‌ها را به مجموعه ریشه (root set) برای تحلیل اضافه می‌کند. .TP \f[V]--multi-release\f[R] \f[I]version\f[R] نسخه مورد نظر را هنگام پردازش فایل‌های JAR چندنسخه‌ای (multi-release) مشخص می‌کند. مقدار \f[I]version\f[R] باید یک عدد صحیح بزرگتر یا مساوی ۹ یا عبارت base باشد. .TP \f[V]-q\f[R] یا \f[V]-quiet\f[R] وابستگی‌های مفقود را در خروجی \f[V]-generate-module-info\f[R] نمایش نمی‌دهد. .TP \f[V]-version\f[R] یا \f[V]--version\f[R] اطلاعات نسخه را چاپ می‌کند. .SH "گزینه‌های تحلیل وابستگی ماژول (MODULE DEPENDENCE ANALYSIS OPTIONS)" .TP \f[V]-m\f[R] \f[I]module-name\f[R] یا \f[V]--module\f[R] \f[I]module-name\f[R] ماژول ریشه را برای تحلیل مشخص می‌کند. .TP \f[V]--generate-module-info\f[R] \f[I]dir\f[R] فایل \f[V]module-info.java\f[R] را در دایرکتوری مشخص‌شده تولید می‌کند. فایل‌های JAR مشخص‌شده تحلیل خواهند شد. این گزینه نمی‌تواند همراه با گزینه‌های \f[V]--dot-output\f[R] یا \f[V]--class-path\f[R] استفاده شود. برای ماژول‌های باز (open modules) از گزینه \f[V]--generate-open-module\f[R] استفاده کنید. .TP \f[V]--generate-open-module\f[R] \f[I]dir\f[R] فایل \f[V]module-info.java\f[R] را برای فایل‌های JAR مشخص‌شده در دایرکتوری تعیین‌شده به عنوان ماژول‌های باز تولید می‌کند. این گزینه نمی‌تواند همراه با گزینه‌های \f[V]--dot-output\f[R] یا \f[V]--class-path\f[R] استفاده شود. .TP \f[V]--check\f[R] \f[I]module-name\f[R] [\f[V],\f[R] \f[I]module-name\f[R]...] وابستگی ماژول‌های مشخص‌شده را تحلیل می‌کند. توصیف‌کننده ماژول (module descriptor)، وابستگی‌های نهایی ماژول پس از تحلیل و گراف حاصل را پس از کاهش انتقالی (transition reduction) چاپ می‌کند. همچنین صادرات اختصاصی استفاده‌نشده (unused qualified exports) را شناسایی می‌کند. .TP \f[V]--list-deps\f[R] وابستگی‌های ماژول و همچنین نام بسته‌های APIهای داخلی JDK (در صورت ارجاع) را فهرست می‌کند. این گزینه کتابخانه‌های موجود در class path و module path را در صورت ارجاع به طور بازگشتی و انتقالی تحلیل می‌کند. برای تحلیل غیرانتقالی وابستگی‌ها از گزینه \f[V]--no-recursive\f[R] استفاده کنید. .TP \f[V]--list-reduced-deps\f[R] مشابه \f[V]--list-deps\f[R] است با این تفاوت که یال‌های خواندن ضمنی (implied reads edges) را از گراف ماژول حذف می‌کند. اگر ماژول M1 ماژول M2 را بخواند، و M2 نیازمندی انتقالی (transitive requires) بر روی M3 داشته باشد، خواندن M3 توسط M1 ضمنی بوده و در گراف نمایش داده نمی‌شود. .TP \f[V]--print-module-deps\f[R] مشابه \f[V]--list-reduced-deps\f[R] است اما فهرستی از وابستگی‌های ماژول را با کاما جدا کرده و چاپ می‌کند. خروجی می‌تواند توسط \f[V]jlink --add-modules\f[R] برای ایجاد یک ایمیج سفارشی شامل آن ماژول‌ها و وابستگی‌های انتقالی آن‌ها استفاده شود. .TP \f[V]--ignore-missing-deps\f[R] از وابستگی‌های مفقود چشم‌پوشی می‌کند. .SH "گزینه‌های فیلتر کردن وابستگی‌ها (OPTIONS TO FILTER DEPENDENCES)" .TP \f[V]-p\f[R] \f[I]pkg_name\f[R]، \f[V]-package\f[R] \f[I]pkg_name\f[R]، یا \f[V]--package\f[R] \f[I]pkg_name\f[R] وابستگی‌های منطبق با نام بسته مشخص‌شده را پیدا می‌کند. می‌توانید این گزینه را چندین بار برای بسته‌های مختلف مشخص کنید. گزینه‌های \f[V]-p\f[R] و \f[V]-e\f[R] مانعة‌الجمع هستند. .TP \f[V]-e\f[R] \f[I]regex\f[R]، \f[V]-regex\f[R] \f[I]regex\f[R]، یا \f[V]--regex\f[R] \f[I]regex\f[R] وابستگی‌های منطبق با الگوی مشخص‌شده را پیدا می‌کند. گزینه‌های \f[V]-p\f[R] و \f[V]-e\f[R] مانعة‌الجمع هستند. .TP \f[V]--require\f[R] \f[I]module-name\f[R] وابستگی‌های منطبق با نام ماژول داده‌شده را پیدا می‌کند (می‌تواند چندین بار مشخص شود). گزینه‌های \f[V]--package\f[R]، \f[V]--regex\f[R]، و \f[V]--require\f[R] مانعة‌الجمع هستند. .TP \f[V]-f\f[R] \f[I]regex\f[R] یا \f[V]-filter\f[R] \f[I]regex\f[R] وابستگی‌های منطبق با الگوی مشخص‌شده را فیلتر می‌کند. در صورت تکرار، آخرین مورد انتخاب خواهد شد. .TP \f[V]-filter:package\f[R] وابستگی‌های درون همان بسته را فیلتر می‌کند. این حالت پیش‌فرض است. .TP \f[V]-filter:archive\f[R] وابستگی‌های درون همان آرشیو را فیلتر می‌کند. .TP \f[V]-filter:module\f[R] وابستگی‌های درون همان ماژول را فیلتر می‌کند. .TP \f[V]-filter:none\f[R] فیلترهای \f[V]-filter:package\f[R] و \f[V]-filter:archive\f[R] را اعمال نمی‌کند. فیلتر مشخص‌شده از طریق گزینه \f[V]-filter\f[R] همچنان اعمال می‌شود. .TP \f[V]--missing-deps\f[R] وابستگی‌های مفقود را پیدا می‌کند. این گزینه نمی‌تواند همراه با گزینه‌های \f[V]-p\f[R]، \f[V]-e\f[R] و \f[V]-s\f[R] استفاده شود. .SH "گزینه‌های فیلتر کردن کلاس‌های مورد تحلیل (OPTIONS TO FILTER CLASSES TO BE ANALYZED)" .TP \f[V]-include\f[R] \f[I]regex\f[R] تحلیل را به کلاس‌های منطبق با الگو محدود می‌کند. این گزینه فهرست کلاس‌های مورد تحلیل را فیلتر می‌کند. می‌توان از آن همراه با \f[V]-p\f[R] و \f[V]-e\f[R] که الگو را بر روی وابستگی‌ها اعمال می‌کنند، استفاده کرد. .TP \f[V]-P\f[R] یا \f[V]-profile\f[R] پروفایل شامل یک بسته را نمایش می‌دهد. این گزینه منسوخ شده و ممکن است در نسخه‌های آینده حذف شود. .TP \f[V]-R\f[R] یا \f[V]--recursive\f[R] تمام وابستگی‌های زمان اجرا را به صورت بازگشتی پیمایش می‌کند. گزینه \f[V]-R\f[R] به طور ضمنی شامل \f[V]-filter:none\f[R] است. اگر گزینه‌های \f[V]-p\f[R]، \f[V]-e\f[R]، یا \f[V]-f\f[R] مشخص شده باشند، فقط وابستگی‌های منطبق تحلیل می‌شوند. .TP \f[V]--no-recursive\f[R] وابستگی‌ها را به صورت بازگشتی پیمایش نمی‌کند. .TP \f[V]-I\f[R] یا \f[V]--inverse\f[R] وابستگی‌ها را طبق سایر گزینه‌های مشخص‌شده تحلیل کرده و سپس تمام آرتیفکت‌هایی را که مستقیماً یا غیرمستقیم به گره‌های منطبق وابسته هستند پیدا می‌کند. این معادل معکوس تحلیل نمای زمان کامپایل و چاپ خلاصه وابستگی‌ها است. این گزینه باید همراه با گزینه‌های \f[V]--require\f[R]، \f[V]--package\f[R]، یا \f[V]--regex\f[R] استفاده شود. .TP \f[V]--compile-time\f[R] نمای زمان کامپایل وابستگی‌های انتقالی را تحلیل می‌کند، مانند نمای زمان کامپایل گزینه \f[V]-R\f[R]. وابستگی‌ها را طبق سایر گزینه‌های مشخص‌شده تحلیل می‌کند. اگر وابستگی از یک دایرکتوری، فایل JAR یا ماژول پیدا شود، تمام کلاس‌های موجود در آن آرشیو حاوی تحلیل می‌شوند. .SH "مثال تحلیل وابستگی‌ها (EXAMPLE OF ANALYZING DEPENDENCIES)" .PP مثال زیر تحلیل وابستگی‌های فایل \f[V]Notepad.jar\f[R] را نشان می‌دهد. .PP \f[B]لینوکس و macOS:\f[R] .IP .nf \f[CB] $ jdeps demo/jfc/Notepad/Notepad.jar Notepad.jar -> java.base Notepad.jar -> java.desktop Notepad.jar -> java.logging (Notepad.jar) -> java.awt -> java.awt.event -> java.beans -> java.io -> java.lang -> java.net -> java.util -> java.util.logging -> javax.swing -> javax.swing.border -> javax.swing.event -> javax.swing.text -> javax.swing.tree -> javax.swing.undo \f[R] .fi .PP \f[B]ویندوز:\f[R] .IP .nf \f[CB] C:\[rs]Java\[rs]jdk1.9.0>jdeps demo\[rs]jfc\[rs]Notepad\[rs]Notepad.jar Notepad.jar -> java.base Notepad.jar -> java.desktop Notepad.jar -> java.logging (Notepad.jar) -> java.awt -> java.awt.event -> java.beans -> java.io -> java.lang -> java.net -> java.util -> java.util.logging -> javax.swing -> javax.swing.border -> javax.swing.event -> javax.swing.text -> javax.swing.tree -> javax.swing.undo \f[R] .fi .SH "مثال استفاده از گزینه INVERSE-- (EXAMPLE USING THE --INVERSE OPTION)" .IP .nf \f[CB] $ jdeps --inverse --require java.xml.bind Inverse transitive dependences on [java.xml.bind] java.xml.bind <- java.se.ee java.xml.bind <- jdk.xml.ws java.xml.bind <- java.xml.ws <- java.se.ee java.xml.bind <- java.xml.ws <- jdk.xml.ws java.xml.bind <- jdk.xml.bind <- jdk.xml.ws \f[R] .fi