.\" Automatically generated by Pandoc 3.10.2 .\" .TH "JDEPRSCAN" "1" "2026" "JDK 26.0.2.1" "دستورات JDK" .SH "نام (NAME)" jdeprscan \- ابزار تحلیل ایستا برای بررسی و پویش فایل JAR (یا مجموعه‌ای دیگر از فایل‌های کلاس) جهت یافتن موارد استفاده از عناصر منسوخ‌شده API .SH "خلاصه دستور (SYNOPSIS)" \f[CR]jdeprscan\f[R] [\f[I]گزینه‌ها\f[R]] {\f[I]dir\f[R]|\f[I]jar\f[R]|\f[I]class\f[R]} .TP \f[I]گزینه‌ها\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های منسوخ‌شده (deprecated) پویش می‌کند. آرگومان‌ها می‌توانند شامل موارد زیر باشند: .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] برای کلاس‌های تودرتو (nested)، باید از نویسه جداکننده علامت دلار \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های منسوخ‌شده تعریف‌شده توسط کتابخانه‌های شخص ثالث (Third-party) گزارش نمی‌شوند. .PP برای پویش یک فایل JAR یا مجموعه‌ای از فایل‌های کلاس، ابتدا باید اطمینان حاصل کنید که تمام کلاس‌هایی که کلاس‌های تحت پویش به آن‌ها وابسته‌اند در مسیر کلاس (class path) وجود دارند. مسیر کلاس را با استفاده از گزینه \f[CR]\-\-class\-path\f[R] شرح داده شده در بخش \f[B]گزینه‌های دستور jdeprscan\f[R] تنظیم کنید. به طور معمول، شما از همان مسیر کلاسی استفاده می‌کنید که هنگام فراخوانی برنامه خود به کار می‌برید. .PP اگر \f[CR]jdeprscan\f[R] نتواند تمام کلاس‌های وابسته را پیدا کند، یک پیام خطا برای هر کلاسی که مفقود است تولید خواهد کرد. این پیام‌های خطا معمولاً به این صورت هستند: .RS .PP \f[CR]error: cannot find class ...\f[R] .RE .PP در صورت بروز این خطاها، باید مسیر کلاس را به گونه‌ای تنظیم کنید که شامل تمام کلاس‌های وابسته باشد. .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]لینوکس و macOS:\f[R] .RS 2 .RS .PP \f[CR]\-\-class\-path /some/directory:/another/different/dir\f[R] .RE .RE \f[B]نکته:\f[R] در ویندوز، از یک سمیکالن (\f[CR];\f[R]) به عنوان جداکننده به جای دونقطه (\f[CR]:\f[R]) استفاده کنید. .IP \(bu 2 \f[B]ویندوز:\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هایی محدود می‌کند که برای حذف منسوخ شده‌اند (deprecated for removal). نمی‌توان با مقدار انتشار 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] است که یک نام ویژه بوده و نشان می‌دهد متد در واقع یک سازنده (constructor) است. یک نام ویژه دیگر \f[CR]\f[R] است که یک مقداردهنده اولیه ایستا (static initializer) برای کلاس را نشان می‌دهد. .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