.\" Automatically generated by Pandoc 3.10.2 .\" .TH "JDEPRSCAN" "1" "2026" "JDK 25.0.4.1" "JDK Commands" .SH "نام (NAME)" jdeprscan \- ابزار تحلیل ایستا برای پویش یک فایل JAR (یا هر مجموعه‌ای دیگر از فایل‌های کلاس) به منظور یافتن موارد استفاده از عناصر منسوخ‌شده API .SH "خلاصه دستور (SYNOPSIS)" \f[CR]jdeprscan\f[R] [\f[I]options\f[R]] {\f[I]dir\f[R]|\f[I]jar\f[R]|\f[I]class\f[R]} .TP \f[I]options\f[R] بخش \f[B]گزینه‌های دستور jdeprscan\f[R] را ببینید. .TP \f[I]dir\f[R]|\f[I]jar\f[R]|\f[I]class\f[R] دستور \f[CR]jdeprscan\f[R] هر آرگومان را برای موارد استفاده از APIهای منسوخ‌شده پویش می‌کند. آرگومان‌ها می‌توانند یکی از موارد زیر باشند: .RS .IP \(bu 2 \f[I]dir\f[R]: دایرکتوری .IP \(bu 2 \f[I]jar\f[R]: فایل JAR .IP \(bu 2 \f[I]class\f[R]: نام کلاس یا فایل کلاس نام کلاس باید از نقطه (\f[CR].\f[R]) به عنوان جداکننده استفاده کند. برای مثال: \f[CR]java.lang.Thread\f[R] برای کلاس‌های تو در تو، باید از نویسه جداکننده علامت دلار \f[CR]$\f[R] استفاده شود. برای مثال: \f[CR]java.lang.Thread$State\f[R] همچنین می‌توان یک فایل کلاس را مشخص کرد. برای مثال: \f[CR]build/classes/java/lang/Thread$State.class\f[R] .RE .SH "توضیحات (DESCRIPTION)" ابزار \f[CR]jdeprscan\f[R] یک ابزار تحلیل ایستا ارائه‌شده توسط JDK است که یک فایل JAR یا هر مجموعه دیگری از فایل‌های کلاس را برای یافتن موارد استفاده از عناصر منسوخ‌شده API پویش می‌کند. APIهای منسوخ‌شده‌ای که توسط ابزار \f[CR]jdeprscan\f[R] شناسایی می‌شوند، تنها مواردی هستند که توسط Java SE تعریف شده‌اند. APIهای منسوخ‌شده‌ای که توسط کتابخانه‌های شخص ثالث تعریف شده‌اند گزارش نمی‌شوند. .PP برای پویش یک فایل JAR یا مجموعه‌ای از فایل‌های کلاس، ابتدا باید اطمینان حاصل کنید که تمام کلاس‌هایی که کلاس‌های پویش‌شده به آن‌ها وابسته هستند، در class path حضور دارند. مسیر کلاس را با استفاده از گزینه \f[CR]\-\-class\-path\f[R] که در بخش \f[B]گزینه‌های دستور jdeprscan\f[R] شرح داده شده، تنظیم کنید. معمولاً از همان class path استفاده می‌کنید که هنگام فراخوانی برنامه خود به کار می‌برید. .PP اگر \f[CR]jdeprscan\f[R] نتواند تمام کلاس‌های وابسته را پیدا کند، برای هر کلاسی که مفقود است یک پیام خطا تولید خواهد کرد. این پیام‌های خطا معمولاً به این صورت هستند: .RS .PP \f[CR]error: cannot find class ...\f[R] .RE .PP در صورت رخ دادن این خطاها، باید class path را به گونه‌ای تنظیم کنید که شامل تمام کلاس‌های وابسته باشد. .SH "گزینه‌های دستور JDEPRSCAN (OPTIONS FOR THE JDEPRSCAN COMMAND)" گزینه‌های زیر در دسترس هستند: .TP \f[CR]\-\-class\-path\f[R] \f[I]path\f[R] یک مسیر جستجو برای یافتن کلاس‌های وابسته فراهم می‌کند. .RS \f[I]path\f[R] می‌تواند یک مسیر جستجو متشکل از یک یا چند دایرکتوری باشد که با جداکننده مسیر مخصوص سیستم‌عامل از یکدیگر جدا شده‌اند. برای مثال: .IP \(bu 2 \f[B]Linux و macOS:\f[R] .RS 2 .RS .PP \f[CR]\-\-class\-path /some/directory:/another/different/dir\f[R] .RE .RE \f[B]نکته:\f[R] در Windows، به جای دو نقطه (\f[CR]:\f[R]) از یک نقطه ویرگول (\f[CR];\f[R]) به عنوان جداکننده استفاده کنید. .IP \(bu 2 \f[B]Windows:\f[R] .RS 2 .RS .PP \f[CR]\-\-class\-path \(rssome\(rsdirectory;\(rsanother\(rsdifferent\(rsdir\f[R] .RE .RE .RE .TP \f[CR]\-\-for\-removal\f[R] پویش یا فهرست‌بندی را به APIهایی محدود می‌کند که برای حذف منسوخ شده‌اند. نمی‌توان همراه با مقدار release برابر با 6، 7 یا 8 استفاده کرد. .TP \f[CR]\-\-full\-version\f[R] رشته کامل نسخه ابزار را چاپ می‌کند. .TP \f[CR]\-\-help\f[R] یا \f[CR]\-h\f[R] پیام راهنمای کامل را چاپ می‌کند. .TP \f[CR]\-\-list\f[R] یا \f[CR]\-l\f[R] مجموعه APIهای منسوخ‌شده را چاپ می‌کند. هیچ پویشی انجام نمی‌شود، بنابراین نباید هیچ آرگومان دایرکتوری، jar یا کلاسی ارائه شود. .TP \f[CR]\-\-release\f[R] \f[CR]6\f[R]|\f[CR]7\f[R]|\f[CR]8\f[R]|\f[CR]9\f[R] انتشار Java SE را مشخص می‌کند که مجموعه APIهای منسوخ‌شده را برای پویش فراهم می‌آورد. .TP \f[CR]\-\-verbose\f[R] یا \f[CR]\-v\f[R] خروجی پیام‌های اضافی را در طول پردازش فعال می‌کند. .TP \f[CR]\-\-version\f[R] رشته مختصر نسخه ابزار را چاپ می‌کند. .SH "نمونه خروجی JDEPRSCAN (EXAMPLE OF JDEPRSCAN OUTPUT)" فایل JAR این کتابخانه نامی شبیه به \f[CR]commons\-math3\-3.6.1.jar\f[R] خواهد داشت. برای پویش این فایل JAR به منظور یافتن استفاده از APIهای منسوخ‌شده، دستور زیر را اجرا کنید: .RS .PP \f[CR]jdeprscan commons\-math3\-3.6.1.jar\f[R] .RE .PP این دستور چندین خط خروجی تولید می‌کند. برای مثال، یک خط از خروجی ممکن است به این صورت باشد: .IP .EX class org/apache/commons/math3/util/MathUtils uses deprecated method java/lang/Double::(D)V .EE .PP \f[B]نکته:\f[R] .PP نام کلاس با استفاده از نام باینری جداشده با اسلش، مطابق با آنچه در JVMS 4.2.1 شرح داده شده، مشخص می‌شود. این همان شکلی است که به صورت داخلی در فایل‌های کلاس استفاده می‌شود. .PP API منسوخ‌شده‌ای که استفاده می‌کند، متدی در کلاس \f[CR]java.lang.Double\f[R] است. .PP نام متد منسوخ‌شده \f[CR]\f[R] است، که یک نام ویژه بوده و به این معنی است که این متد در واقع یک سازنده است. نام ویژه دیگر \f[CR]\f[R] است که نشان‌دهنده یک مقدارده اولیه ایستا برای کلاس است. .PP سایر متدها تنها با نام متدشان فهرست می‌شوند. به دنبال نام متد، فهرست آرگومان‌ها و نوع بازگشتی آمده است: .RS .PP \f[CR](D)V\f[R] .RE .PP این نشان می‌دهد که متد فقط یک مقدار double (یک نوع اولیه) دریافت کرده و void برمی‌گرداند. انواع آرگومان و بازگشتی می‌توانند مبهم و پیچیده به نظر برسند. برای مثال، خط دیگری از خروجی ممکن است چنین باشد: .IP .EX class org/apache/commons/math3/util/Precision uses deprecated method java/math/BigDecimal::setScale(II)Ljava/math/BigDecimal; .EE .PP در این خط از خروجی، متد منسوخ‌شده روی کلاس \f[CR]java.math.BigDecimal\f[R] قرار دارد و نام متد \f[CR]setScale()\f[R] است. در این مورد، \f[CR](II)\f[R] به این معنی است که دو آرگومان از نوع \f[CR]int\f[R] دریافت می‌کند. عبارت \f[CR]Ljava/math/BigDecimal;\f[R] پس از پرانتزها به این معنی است که ارجاعی به \f[CR]java.math.BigDecimal\f[R] برمی‌گرداند. .SH "تحلیل JDEPRSCAN می‌تواند وابسته به نسخه باشد (JDEPRSCAN ANALYSIS CAN BE VERSION\-SPECIFIC)" می‌توانید از \f[CR]jdeprscan\f[R] نسبت به سه انتشار قبلی JDK استفاده کنید. برای مثال، اگر در حال اجرای JDK 9 هستید، می‌توانید برنامه را با JDK 8، 7 و 6 بسنجید. .PP به عنوان مثال، به این قطعه کد نگاه کنید: .IP .EX public class Deprecations { SecurityManager sm = new RMISecurityManager(); // deprecated in 8 Boolean b2 = new Boolean(true); // deprecated in 9 } .EE .PP کلاس کامل در JDK 7 بدون هیچ هشداری کامپایل می‌شود. .PP اگر \f[CR]jdeprscan\f[R] را روی سیستمی با JDK 9 اجرا کنید، خروجی زیر را می‌بینید: .IP .EX $ jdeprscan \-\-class\-path classes \-\-release 7 example.Deprecations (no output) .EE .PP دستور \f[CR]jdeprscan\f[R] را با مقدار انتشار 8 اجرا کنید: .IP .EX $ jdeprscan \-\-class\-path classes \-\-release 8 example.Deprecations class example/Deprecations uses type java/rmi/RMISecurityManager deprecated class example/Deprecations uses method in type java/rmi/RMISecurityManager deprecated .EE .PP دستور \f[CR]jdeprscan\f[R] را روی JDK 9 اجرا کنید: .IP .EX $ jdeprscan \-\-class\-path classes example.Deprecations class example/Deprecations uses type java/rmi/RMISecurityManager deprecated class example/Deprecations uses method in type java/rmi/RMISecurityManager deprecated class example/Deprecations uses method java/lang/Boolean (Z)V deprecated .EE