.\" Automatically generated by Pandoc 3.10.2 .\" .TH "JAVAP" "1" "2026" "JDK 25.0.4.1" "JDK Commands" .SH "نام (NAME)" javap-openjdk25 \- دیس‌اسمبل کردن یک یا چند فایل کلاس جاوا .SH "خلاصه دستور (SYNOPSIS)" \f[CR]javap\f[R] [\f[I]options\f[R]] \f[I]classes\f[R]... .TP \f[I]options\f[R] گزینه‌های خط فرمان را مشخص می‌کند. بخش \f[B]گزینه‌های JAVAP\f[R] را ببینید. .TP \f[I]classes\f[R] یک یا چند کلاس جداشده با فاصله را برای پردازش حاشیه‌نویسی‌ها (annotations) مشخص می‌کند. می‌توانید کلاسی را که در مسیر کلاس (class path) قابل یافتن است، با نام فایل، نشانی وب (URL) یا نام کامل کلاس (fully qualified class name) مشخص کنید. .RS مثال‌ها: .RS .PP \f[CR]path/to/MyClass.class\f[R] .RE .RS .PP \f[CR]jar:file:///path/to/MyJar.jar!/mypkg/MyClass.class\f[R] .RE .RS .PP \f[CR]java.lang.Object\f[R] .RE .RE .SH "توضیحات (DESCRIPTION)" دستور \f[CR]javap\f[R] یک یا چند فایل کلاس را دیس‌اسمبل می‌کند. خروجی به گزینه‌های استفاده‌شده بستگی دارد. هنگامی که از هیچ گزینه‌ای استفاده نشود، دستور \f[CR]javap\f[R] فیلدها و متدهای عمومی (public) و محافظت‌شده (protected) کلاس‌های ارائه‌شده به آن را چاپ می‌کند. .PP دستور \f[CR]javap\f[R] از فایل‌های JAR چندنسخه‌ای (multirelease) پشتیبانی نمی‌کند. استفاده از شکل مسیر کلاس (class path) در این دستور منجر به مشاهده مدخل پایه (base entry) در تمام فایل‌های JAR می‌شود، چه چندنسخه‌ای باشند و چه نباشند. با استفاده از شکل نشانی وب (URL)، می‌توانید نسخه خاصی از یک کلاس را برای دیس‌اسمبل شدن تعیین کنید. .PP دستور \f[CR]javap\f[R] خروجی خود را در \f[CR]stdout\f[R] چاپ می‌کند. .PP \f[B]نکته:\f[R] .PP در ابزارهایی که از گزینه‌های به سبک \f[CR]\-\-\f[R] پشتیبانی می‌کنند، گزینه‌های به سبک گنو (GNU) می‌توانند به جای فاصله، از علامت مساوی (\f[CR]=\f[R]) برای جداسازی نام گزینه از مقدار آن استفاده کنند. .SH "گزینه‌های JAVAP (OPTIONS FOR JAVAP)" .TP \f[CR]\-\-help\f[R]، \f[CR]\-help\f[R]، \f[CR]\-h\f[R] یا \f[CR]\-?\f[R] پیام راهنما را برای دستور \f[CR]javap\f[R] چاپ می‌کند. .TP \f[CR]\-version\f[R] اطلاعات نسخه انتشار را چاپ می‌کند. .TP \f[CR]\-verbose\f[R] یا \f[CR]\-v\f[R] اطلاعات تکمیلی و بیشتری را درباره کلاس انتخاب‌شده چاپ می‌کند. .TP \f[CR]\-l\f[R] جدول‌های شماره خط و متغیرهای محلی را چاپ می‌کند. .TP \f[CR]\-public\f[R] تنها کلاس‌ها و اعضای عمومی (public) را نمایش می‌دهد. .TP \f[CR]\-protected\f[R] تنها کلاس‌ها و اعضای محافظت‌شده (protected) و عمومی (public) را نمایش می‌دهد. .TP \f[CR]\-package\f[R] کلاس‌ها و اعضای بسته/محافظت‌شده/عمومی را نمایش می‌دهد (پیش‌فرض). .TP \f[CR]\-private\f[R] یا \f[CR]\-p\f[R] تمام کلاس‌ها و اعضا را نمایش می‌دهد. .TP \f[CR]\-c\f[R] کد دیس‌اسمبل‌شده (به عنوان مثال، دستوراتی که بایت‌کدهای جاوا را تشکیل می‌دهند) را برای هر یک از متدهای کلاس چاپ می‌کند. .TP \f[CR]\-s\f[R] امضاهای داخلی نوع (internal type signatures) را چاپ می‌کند. .TP \f[CR]\-sysinfo\f[R] اطلاعات سیستمی (مسیر، اندازه، تاریخ و هش SHA\-256) کلاس در حال پردازش را نمایش می‌دهد. .TP \f[CR]\-verify\f[R] اطلاعات اعتبارسنجی تکمیلی کلاس را چاپ می‌کند. .TP \f[CR]\-constants\f[R] ثابت‌های \f[CR]static final\f[R] را نمایش می‌دهد. .TP \f[CR]\-\-module\f[R] \f[I]module\f[R] یا \f[CR]\-m\f[R] \f[I]module\f[R] پیمانه‌ای که کلاس‌های مورد نظر برای دیس‌اسمبل شدن در آن قرار دارند را مشخص می‌کند. .TP \f[CR]\-\-module\-path\f[R] \f[I]path\f[R] محل یافتن پیمانه‌های برنامه را مشخص می‌کند. .TP \f[CR]\-\-system\f[R] \f[I]jdk\f[R] محل یافتن پیمانه‌های سیستمی را مشخص می‌کند. .TP \f[CR]\-\-class\-path\f[R] \f[I]path\f[R]، \f[CR]\-classpath\f[R] \f[I]path\f[R] یا \f[CR]\-cp\f[R] \f[I]path\f[R] مسیری را مشخص می‌کند که دستور \f[CR]javap\f[R] برای یافتن فایل‌های کلاس کاربر از آن استفاده می‌کند. این گزینه در صورت تنظیم بودن، مقدار پیش‌فرض یا متغیر محیطی \f[CR]CLASSPATH\f[R] را بازنویسی می‌کند. .TP \f[CR]\-bootclasspath\f[R] \f[I]path\f[R] مکان فایل‌های کلاس راه‌انداز (bootstrap) را بازنویسی می‌کند. .TP \f[CR]\-\-multi\-release\f[R] \f[I]version\f[R] نسخه مورد نظر را برای انتخاب در فایل‌های JAR چندنسخه‌ای مشخص می‌کند. .TP \f[CR]\-J\f[R]\f[I]option\f[R] گزینه مشخص‌شده را به ماشین مجازی جاوا (JVM) ارسال می‌کند. برای مثال: .RS .IP .EX javap \-J\-version javap \-J\-Djava.security.manager \-J\-Djava.security.policy=MyPolicy MyClassName .EE .PP بخش \f[I]Overview of Java Options\f[R] در صفحه راهنمای \f[B]java\f[R] را ببینید. .RE .SH "مثال‌های JAVAP (EXAMPLES)" کلاس \f[CR]HelloWorldFrame\f[R] زیر را کامپایل کنید: .IP .EX import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; public class HelloWorldFrame extends JFrame { String message = \(dqHello World!\(dq; public HelloWorldFrame(){ setContentPane(new JPanel(){ \(atOverride protected void paintComponent(Graphics g) { g.drawString(message, 15, 30); } }); setSize(100, 100); } public static void main(String[] args) { HelloWorldFrame frame = new HelloWorldFrame(); frame.setVisible(true); } } .EE .PP خروجی حاصل از دستور \f[CR]javap HelloWorldFrame.class\f[R] به صورت زیر خواهد بود: .IP .EX Compiled from \(dqHelloWorldFrame.java\(dq public class HelloWorldFrame extends javax.swing.JFrame { java.lang.String message; public HelloWorldFrame(); public static void main(java.lang.String[]); } .EE .PP خروجی حاصل از دستور \f[CR]javap \-c HelloWorldFrame.class\f[R] به صورت زیر خواهد بود: .IP .EX Compiled from \(dqHelloWorldFrame.java\(dq public class HelloWorldFrame extends javax.swing.JFrame { java.lang.String message; public HelloWorldFrame(); Code: 0: aload_0 1: invokespecial #1 // Method javax/swing/JFrame.\(dq\(dq:()V 4: aload_0 5: ldc #2 // String Hello World! 7: putfield #3 // Field message:Ljava/lang/String; 10: aload_0 11: new #4 // class HelloWorldFrame$1 14: dup 15: aload_0 16: invokespecial #5 // Method HelloWorldFrame$1.\(dq\(dq:(LHelloWorldFrame;)V 19: invokevirtual #6 // Method setContentPane:(Ljava/awt/Container;)V 22: aload_0 23: bipush 100 25: bipush 100 27: invokevirtual #7 // Method setSize:(II)V 30: return public static void main(java.lang.String[]); Code: 0: new #8 // class HelloWorldFrame 3: dup 4: invokespecial #9 // Method \(dq\(dq:()V 7: astore_1 8: aload_1 9: iconst_1 10: invokevirtual #10 // Method setVisible:(Z)V 13: return } .EE