.\" Copyright (c) 2013, 2020, 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 "JDEPS" "1" "2021" "JDK 17" "JDK Commands" .hy .SH "نام (NAME)" .PP jdeps \- راه‌اندازی تحلیل‌گر وابستگی کلاس‌های جاوا .SH "خلاصه دستور (SYNOPSIS)" .PP \f[CB]jdeps\f[R] [\f[I]options\f[R]] \f[I]path\f[R] ... .TP .B \f[I]options\f[R] گزینه‌های خط فرمان. برای توضیحات دقیق گزینه‌های قابل استفاده، ببینید: .RS .IP \[bu] 2 \f[B]گزینه‌های ممکن (Possible Options)\f[R] .IP \[bu] 2 \f[B]گزینه‌های تحلیل وابستگی ماژول (Module Dependence Analysis Options)\f[R] .IP \[bu] 2 \f[B]گزینه‌های پالایش وابستگی‌ها (Options to Filter Dependences)\f[R] .IP \[bu] 2 \f[B]گزینه‌های پالایش کلاس‌های مورد تحلیل (Options to Filter Classes to be Analyzed)\f[R] .RE .TP .B \f[I]path\f[R] نام مسیر فایل \f[CB]\&.class\f[R]، دایرکتوری، یا فایل JAR مورد تحلیل. .RS .RE .SH "توضیحات (DESCRIPTION)" .PP دستور \f[CB]jdeps\f[R] وابستگی‌های در سطح بسته یا کلاس فایل‌های کلاس جاوا را نمایش می‌دهد. کلاس ورودی می‌تواند نام مسیری به یک فایل \f[CB]\&.class\f[R]، یک دایرکتوری یا یک فایل JAR باشد، یا می‌تواند نام کامل کلاس برای تحلیل تمام فایل‌های کلاس باشد. گزینه‌ها خروجی را تعیین می‌کنند. به‌طور پیش‌فرض، دستور \f[CB]jdeps\f[R] وابستگی‌ها را در خروجی سیستم می‌نویسد. این دستور می‌تواند وابستگی‌ها را به زبان DOT نیز تولید کند (گزینهٔ \f[CB]\-dotoutput\f[R] را ببینید). .SH "گزینه‌های ممکن (POSSIBLE OPTIONS)" .TP .B \f[CB]\-?\f[R] یا \f[CB]\-h\f[R] یا \f[CB]\-\-help\f[R] پیام راهنما را چاپ می‌کند. .RS .RE .TP .B \f[CB]\-dotoutput\f[R] \f[I]dir\f[R] یا \f[CB]\-\-dot\-output\f[R] \f[I]dir\f[R] دایرکتوری مقصد را برای خروجی فایل DOT مشخص می‌کند. اگر این گزینه مشخص شود، دستور \f[CB]jdeps\f[R] برای هر بایگانی تحلیل‌شده یک فایل \f[CB]\&.dot\f[R] به نام \f[CB]archive\-file\-name.dot\f[R] تولید می‌کند که وابستگی‌ها را فهرست می‌نماید، و همچنین یک فایل خلاصه به نام \f[CB]summary.dot\f[R] که وابستگی‌های بین فایل‌های بایگانی را فهرست می‌کند. .RS .RE .TP .B \f[CB]\-s\f[R] یا \f[CB]\-summary\f[R] تنها خلاصه‌ای از وابستگی‌ها را چاپ می‌کند. .RS .RE .TP .B \f[CB]\-v\f[R] یا \f[CB]\-verbose\f[R] تمام وابستگی‌های سطح کلاس را چاپ می‌کند. این معادل است با: .RS .RS .PP \f[CB]\-verbose:class\ \-filter:none\f[R] .RE .RE .TP .B \f[CB]\-verbose:package\f[R] وابستگی‌های سطح بسته را چاپ می‌کند که به‌طور پیش‌فرض، وابستگی‌های درون همان بسته حذف می‌شوند. .RS .RE .TP .B \f[CB]\-verbose:class\f[R] وابستگی‌های سطح کلاس را چاپ می‌کند که به‌طور پیش‌فرض، وابستگی‌های درون همان بایگانی حذف می‌شوند. .RS .RE .TP .B \f[CB]\-apionly\f[R] یا \f[CB]\-\-api\-only\f[R] تحلیل را به APIها محدود می‌کند؛ برای مثال، وابستگی‌های حاصل از امضای اعضای \f[CB]public\f[R] و \f[CB]protected\f[R] کلاس‌های عمومی، شامل نوع فیلد، انواع پارامترهای متد، نوع بازگشتی و انواع استثناهای بررسی‌شده (checked exceptions). .RS .RE .TP .B \f[CB]\-jdkinternals\f[R] یا \f[CB]\-\-jdk\-internals\f[R] وابستگی‌های سطح کلاس را در APIهای داخلی JDK پیدا می‌کند. به‌طور پیش‌فرض، این گزینه تمام کلاس‌های مشخص‌شده در گزینهٔ \f[CB]\-\-classpath\f[R] و فایل‌های ورودی را تحلیل می‌کند، مگر اینکه گزینهٔ \f[CB]\-include\f[R] را مشخص کرده باشید. نمی‌توانید از این گزینه همراه با گزینه‌های \f[CB]\-p\f[R]، \f[CB]\-e\f[R] و \f[CB]\-s\f[R] استفاده کنید. .RS .PP \f[B]هشدار\f[R]: APIهای داخلی JDK غیرقابل دسترس هستند. .RE .TP .B \f[CB]\-cp\f[R] \f[I]path\f[R]، \f[CB]\-classpath\f[R] \f[I]path\f[R] یا \f[CB]\-\-class\-path\f[R] \f[I]path\f[R] محل یافتن فایل‌های کلاس را مشخص می‌کند. .RS .RE .TP .B \f[CB]\-\-module\-path\f[R] \f[I]module\-path\f[R] مسیر ماژول را مشخص می‌کند. .RS .RE .TP .B \f[CB]\-\-upgrade\-module\-path\f[R] \f[I]module\-path\f[R] مسیر ماژول ارتقا را مشخص می‌کند. .RS .RE .TP .B \f[CB]\-\-system\f[R] \f[I]java\-home\f[R] یک مسیر ماژول سیستم جایگزین را مشخص می‌کند. .RS .RE .TP .B \f[CB]\-\-add\-modules\f[R] \f[I]module\-name\f[R][\f[CB],\f[R] \f[I]module\-name\f[R]...] ماژول‌ها را برای تحلیل به مجموعهٔ ریشه اضافه می‌کند. .RS .RE .TP .B \f[CB]\-\-multi\-release\f[R] \f[I]version\f[R] نسخه را هنگام پردازش فایل‌های JAR چندنسخه‌ای مشخص می‌کند. \f[I]version\f[R] باید یک عدد صحیح >=9 یا base باشد. .RS .RE .TP .B \f[CB]\-q\f[R] یا \f[CB]\-quiet\f[R] وابستگی‌های مفقود را در خروجی \f[CB]\-generate\-module\-info\f[R] نمایش نمی‌دهد. .RS .RE .TP .B \f[CB]\-version\f[R] یا \f[CB]\-\-version\f[R] اطلاعات نسخه را چاپ می‌کند. .RS .RE.SH "گزینه‌های تحلیل وابستگی ماژول (MODULE DEPENDENCE ANALYSIS OPTIONS)" .TP .B \f[CB]\-m\f[R] \f[I]module\-name\f[R] یا \f[CB]\-\-module\f[R] \f[I]module\-name\f[R] ماژول ریشه را برای تحلیل مشخص می‌کند. .RS .RE .TP .B \f[CB]\-\-generate\-module\-info\f[R] \f[I]dir\f[R] فایل \f[CB]module\-info.java\f[R] را در دایرکتوری مشخص‌شده تولید می‌کند. فایل‌های JAR مشخص‌شده تحلیل خواهند شد. این گزینه نمی‌تواند همراه با گزینه‌های \f[CB]\-\-dot\-output\f[R] یا \f[CB]\-\-class\-path\f[R] استفاده شود. برای ماژول‌های باز (open modules)، از گزینهٔ \f[CB]\-\-generate\-open\-module\f[R] استفاده کنید. .RS .RE .TP .B \f[CB]\-\-generate\-open\-module\f[R] \f[I]dir\f[R] فایل \f[CB]module\-info.java\f[R] را برای فایل‌های JAR مشخص‌شده در دایرکتوری تعیین‌شده به‌عنوان ماژول‌های باز تولید می‌کند. این گزینه نمی‌تواند همراه با گزینه‌های \f[CB]\-\-dot\-output\f[R] یا \f[CB]\-\-class\-path\f[R] استفاده شود. .RS .RE .TP .B \f[CB]\-\-check\f[R] \f[I]module\-name\f[R] [\f[CB],\f[R] \f[I]module\-name\f[R]...] وابستگی ماژول‌های مشخص‌شده را تحلیل می‌کند. توصیف‌گر ماژول، وابستگی‌های حاصل از تحلیل ماژول، و گراف را پس از کاهش تعدی (transition reduction) چاپ می‌کند. همچنین هرگونه صادرات دارای صلاحیت (qualified exports) استفاده‌نشده را شناسایی می‌کند. .RS .RE .TP .B \f[CB]\-\-list\-deps\f[R] وابستگی‌های ماژول و همچنین نام بسته‌های APIهای داخلی JDK را (در صورت ارجاع داده شدن) فهرست می‌کند. این گزینه در صورت ارجاع، کتابخانه‌های موجود روی class path و module path را به‌صورت متعدی تحلیل می‌کند. برای تحلیل وابستگی‌های غیرمتعدی، از گزینهٔ \f[CB]\-\-no\-recursive\f[R] استفاده کنید. .RS .RE .TP .B \f[CB]\-\-list\-reduced\-deps\f[R] مشابه \f[CB]\-\-list\-deps\f[R] است بدون فهرست کردن یال‌های خواندن ضمنی (implied reads) از گراف ماژول. اگر ماژول M1 ماژول M2 را بخواند، و M2 نیازمندی transitive بر M3 داشته باشد، آنگاه خواندن M3 توسط M1 به‌صورت ضمنی بوده و در گراف نشان داده نمی‌شود. .RS .RE .TP .B \f[CB]\-\-print\-module\-deps\f[R] مشابه \f[CB]\-\-list\-reduced\-deps\f[R] همراه با چاپ فهرستی از وابستگی‌های ماژول که با کاما از هم جدا شده‌اند. خروجی می‌تواند توسط \f[CB]jlink\ \-\-add\-modules\f[R] برای ایجاد یک ایمیج سفارشی حاوی آن ماژول‌ها و وابستگی‌های متعدی آن‌ها استفاده شود. .RS .RE .TP .B \f[CB]\-\-ignore\-missing\-deps\f[R] وابستگی‌های ناموجود را نادیده می‌گیرد. .RS .RE .SH "گزینه‌های فیلتر کردن وابستگی‌ها (OPTIONS TO FILTER DEPENDENCES)" .TP .B \f[CB]\-p\f[R] \f[I]pkg_name\f[R]، \f[CB]\-package\f[R] \f[I]pkg_name\f[R] یا \f[CB]\-\-package\f[R] \f[I]pkg_name\f[R] وابستگی‌های منطبق با نام بستهٔ مشخص‌شده را پیدا می‌کند. می‌توانید این گزینه را چندین بار برای بسته‌های مختلف مشخص کنید. گزینه‌های \f[CB]\-p\f[R] و \f[CB]\-e\f[R] مانعة‌الجمع هستند. .RS .RE .TP .B \f[CB]\-e\f[R] \f[I]regex\f[R]، \f[CB]\-regex\f[R] \f[I]regex\f[R] یا \f[CB]\-\-regex\f[R] \f[I]regex\f[R] وابستگی‌های منطبق با الگوی مشخص‌شده را پیدا می‌کند. گزینه‌های \f[CB]\-p\f[R] و \f[CB]\-e\f[R] مانعة‌الجمع هستند. .RS .RE .TP .B \f[CB]\-\-require\f[R] \f[I]module\-name\f[R] وابستگی‌های منطبق با نام ماژول داده‌شده را پیدا می‌کند (می‌تواند چندین بار مشخص شود). گزینه‌های \f[CB]\-\-package\f[R]، \f[CB]\-\-regex\f[R] و \f[CB]\-\-require\f[R] مانعة‌الجمع هستند. .RS .RE .TP .B \f[CB]\-f\f[R] \f[I]regex\f[R] یا \f[CB]\-filter\f[R] \f[I]regex\f[R] وابستگی‌های منطبق با الگوی داده‌شده را فیلتر می‌کند. در صورت مشخص شدن چندین بار، آخرین مورد انتخاب خواهد شد. .RS .RE .TP .B \f[CB]\-filter:package\f[R] وابستگی‌های درون همان بسته را فیلتر می‌کند. این حالت پیش‌فرض است. .RS .RE .TP .B \f[CB]\-filter:archive\f[R] وابستگی‌های درون همان آرشیو را فیلتر می‌کند. .RS .RE .TP .B \f[CB]\-filter:module\f[R] وابستگی‌های درون همان ماژول را فیلتر می‌کند. .RS .RE .TP .B \f[CB]\-filter:none\f[R] هیچ فیلترسازی \f[CB]\-filter:package\f[R] و \f[CB]\-filter:archive\f[R] اعمال نمی‌شود. فیلترسازی مشخص‌شده از طریق گزینهٔ \f[CB]\-filter\f[R] همچنان اعمال خواهد شد. .RS .RE .TP .B \f[CB]\-\-missing\-deps\f[R] وابستگی‌های ناموجود را پیدا می‌کند. این گزینه نمی‌تواند همراه با گزینه‌های \f[CB]\-p\f[R]، \f[CB]\-e\f[R] و \f[CB]\-s\f[R] استفاده شود. .RS .RE.SH "گزینه‌های پالایش کلاس‌های مورد تحلیل (OPTIONS TO FILTER CLASSES TO BE ANALYZED)" .TP .B \f[CB]\-include\f[R] \f[I]regex\f[R] تحلیل را به کلاس‌های منطبق با الگو محدود می‌کند. این گزینه فهرست کلاس‌های مورد تحلیل را پالایش می‌کند. می‌توان آن را به همراه \f[CB]\-p\f[R] و \f[CB]\-e\f[R] که الگو را بر وابستگی‌ها اعمال می‌کنند، به کار برد. .RS .RE .TP .B \f[CB]\-P\f[R] یا \f[CB]\-profile\f[R] پروفایل شامل یک بسته را نمایش می‌دهد. .RS .RE .TP .B \f[CB]\-R\f[R] یا \f[CB]\-\-recursive\f[R] به‌صورت بازگشتی تمامی وابستگی‌های زمان اجرا (run\-time) را پیمایش می‌کند. گزینهٔ \f[CB]\-R\f[R] مستلزم \f[CB]\-filter:none\f[R] است. اگر گزینه‌های \f[CB]\-p\f[R]، \f[CB]\-e\f[R] یا \f[CB]\-f\f[R] مشخص شده باشند، تنها وابستگی‌های منطبق تحلیل می‌شوند. .RS .RE .TP .B \f[CB]\-\-no\-recursive\f[R] وابستگی‌ها را به‌صورت بازگشتی پیمایش نمی‌کند. .RS .RE .TP .B \f[CB]\-I\f[R] یا \f[CB]\-\-inverse\f[R] وابستگی‌ها را بر اساس سایر گزینه‌های ارائه‌شده تحلیل می‌کند و سپس تمام مصنوعاتی را که به‌طور مستقیم و غیرمستقیم به گره‌های منطبق وابسته هستند، می‌یابد. این معادل وارون تحلیل نمای زمان کامپایل (compile\-time) و چاپ خلاصهٔ وابستگی است. این گزینه باید به همراه گزینه‌های \f[CB]\-\-require\f[R]، \f[CB]\-\-package\f[R] یا \f[CB]\-\-regex\f[R] استفاده شود. .RS .RE .TP .B \f[CB]\-\-compile\-time\f[R] نمای زمان کامپایل وابستگی‌های متعدی را تحلیل می‌کند، مانند نمای زمان کامپایل گزینهٔ \f[CB]\-R\f[R]. وابستگی‌ها را بر اساس سایر گزینه‌های مشخص‌شده تحلیل می‌کند. اگر وابستگی از یک دایرکتوری، یک فایل JAR یا یک ماژول پیدا شود، تمام کلاس‌های درون آن آرشیو دربرگیرنده تحلیل می‌شوند. .RS .RE .SH "مثال تحلیل وابستگی‌ها (EXAMPLE OF ANALYZING DEPENDENCIES)" .PP مثال زیر نحوهٔ تحلیل وابستگی‌های فایل \f[CB]Notepad.jar\f[R] را نشان می‌دهد. .PP \f[B]لینوکس و OS X:\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:\\Java\\jdk1.9.0>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.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