'\" t .\" Copyright (c) 1994, 2014, 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. .\" .\" Title: javap .\" Language: English .\" Date: 8 August 2014 .\" SectDesc: Basic Tools .\" Software: JDK 8 .\" Arch: generic .\" Part Number: E38207-03 .\" .if n .pl 99999 .TH "javap" "1" "8 August 2014" "JDK 8" "Basic Tools" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" javap \- دیس‌اسمبل کردن یک یا چند فایل class\&. .SH "خلاصه دستور (SYNOPSIS)" .sp .if n \{\ .RS 4 .\} .nf \fBjavap\fR [\fIoptions\fR] \fIclassfile\fR\&.\&.\&. .fi .if n \{\ .RE .\} .PP \fIoptions\fR .RS 4 گزینه‌های خط فرمان\&. بخش گزینه‌ها را ببینید\&. .RE .PP \fIclassfile\fR .RS 4 یک یا چند کلاس جدا شده با فاصله برای پردازش حاشیه‌نویسی‌ها (annotations) مانند DocFooter\&.class\&. می‌توانید کلاسی را که در مسیر کلاس (class path) قابل یافتن است، با نام فایل آن یا با یک URL مانند \fBfile:///home/user/myproject/src/DocFooter\&.class\fR مشخص کنید\&. .RE .SH "توضیحات (DESCRIPTION)" .PP دستور \fBjavap\fR یک یا چند فایل class را دیس‌اسمبل می‌کند\&. خروجی به گزینه‌های استفاده‌شده بستگی دارد\&. هنگامی که از هیچ گزینه‌ای استفاده نشود، دستور \fBjavap\fR بسته (package)، فیلدهای محافظت‌شده (protected) و عمومی (public)، و متدهای کلاس‌های ارائه‌شده به آن را چاپ می‌کند\&. دستور \fBjavap\fR خروجی خود را در \fBstdout\fR چاپ می‌کند\&. .SH "گزینه‌ها (OPTIONS)" .PP \-help .br \-\-help .br \-? .RS 4 پیام راهنمای دستور \fBjavap\fR را چاپ می‌کند\&. .RE .PP \-version .RS 4 اطلاعات نسخه انتشار را چاپ می‌کند\&. .RE .PP \-l .RS 4 جدول‌های خط و متغیرهای محلی را چاپ می‌کند\&. .RE .PP \-public .RS 4 تنها کلاس‌ها و اعضای عمومی (public) را نمایش می‌دهد\&. .RE .PP \-protected .RS 4 تنها کلاس‌ها و اعضای محافظت‌شده (protected) و عمومی را نمایش می‌دهد\&. .RE .PP \-private .br \-p .RS 4 تمام کلاس‌ها و اعضا را نمایش می‌دهد\&. .RE .PP \-J\fIoption\fR .RS 4 گزینهٔ مشخص‌شده را به JVM ارسال می‌کند\&. برای مثال: .sp .if n \{\ .RS 4 .\} .nf \fBjavap \-J\-version\fR \fBjavap \-J\-Djava\&.security\&.manager \-J\-Djava\&.security\&.policy=MyPolicy MyClassName\fR .fi .if n \{\ .RE .\} برای اطلاعات بیشتر درباره گزینه‌های JVM، مستندات دستور را ببینید\&. .RE .PP \-s .RS 4 امضاهای داخلی نوع (type signatures) را چاپ می‌کند\&. .RE .PP \-sysinfo .RS 4 اطلاعات سیستمی (مسیر، اندازه، تاریخ، هش MD5) کلاسی را که در حال پردازش است نمایش می‌دهد\&. .RE .PP \-constants .RS 4 ثابت‌های \fBstatic final\fR را نمایش می‌دهد\&. .RE .PP \-c .RS 4 کد دیس‌اسمبل‌شده، به عنوان مثال دستورالعمل‌هایی که بایت‌کدهای جاوا را تشکیل می‌دهند، برای هر یک از متدهای کلاس چاپ می‌کند\&. .RE .PP \-verbose .RS 4 اندازه پشته (stack size)، تعداد متغیرهای محلی و آرگومان‌های متدها را چاپ می‌کند\&. .RE .PP \-classpath \fIpath\fR .RS 4 مسیری را که دستور \fBjavap\fR برای جستجوی کلاس‌ها استفاده می‌کند مشخص می‌سازد\&. در صورت تنظیم بودن، بر مقدار پیش‌فرض یا متغیر محیطی \fBCLASSPATH\fR مقدم می‌شود\&. .RE .PP \-bootclasspath \fIpath\fR .RS 4 مسیری را مشخص می‌کند که کلاس‌های راه‌انداز (bootstrap) از آن بارگذاری شوند\&. به‌طور پیش‌فرض، کلاس‌های bootstrap کلاس‌هایی هستند که پلتفرم اصلی جاوا را پیاده‌سازی کرده و در \fBjre/lib/rt\&.jar\fR و چند فایل JAR دیگر قرار دارند\&. .RE .PP \-extdir \fIdirs\fR .RS 4 مکانی را که افزونه‌های نصب‌شده در آن جستجو می‌شوند، بازنویسی می‌کند\&. مکان پیش‌فرض برای افزونه‌ها مقدار \fBjava\&.ext\&.dirs\fR است\&. .RE .SH "مثال‌ها (EXAMPLES)" .PP کلاس \fBDocFooter\fR زیر را کامپایل کنید: .sp .if n \{\ .RS 4 .\} .nf \fBimport java\&.awt\&.*;\fR \fBimport java\&.applet\&.*;\fR \fB \fR \fBpublic class DocFooter extends Applet {\fR \fB String date;\fR \fB String email;\fR \fB \fR \fB public void init() {\fR \fB resize(500,100);\fR \fB date = getParameter("LAST_UPDATED");\fR \fB email = getParameter("EMAIL");\fR \fB }\fR \fB \fR \fB public void paint(Graphics g) {\fR \fB g\&.drawString(date + " by ",100, 15);\fR \fB g\&.drawString(email,290,15);\fR \fB }\fR \fB}\fR .fi .if n \{\ .RE .\} .PP خروجی حاصل از دستور \fBjavap DocFooter\&.class\fR به صورت زیر است: .sp .if n \{\ .RS 4 .\} .nf \fBCompiled from "DocFooter\&.java"\fR \fBpublic class DocFooter extends java\&.applet\&.Applet {\fR \fB java\&.lang\&.String date;\fR \fB java\&.lang\&.String email;\fR \fB public DocFooter();\fR \fB public void init();\fR \fB public void paint(java\&.awt\&.Graphics);\fR \fB}\fR .fi .if n \{\ .RE .\} .PP خروجی حاصل از دستور \fBjavap \-c DocFooter\&.class\fR به صورت زیر است: .sp .if n \{\ .RS 4 .\} .nf \fBCompiled from "DocFooter\&.java"\fR \fBpublic class DocFooter extends java\&.applet\&.Applet {\fR \fB java\&.lang\&.String date;\fR \fB java\&.lang\&.String email;\fR \fB public DocFooter();\fR \fB Code:\fR \fB 0: aload_0 \fR \fB 1: invokespecial #1 // Method\fR \fBjava/applet/Applet\&."":()V\fR \fB 4: return \fR \fB public void init();\fR \fB Code:\fR \fB 0: aload_0 \fR \fB 1: sipush 500\fR \fB 4: bipush 100\fR \fB 6: invokevirtual #2 // Method resize:(II)V\fR \fB 9: aload_0 \fR \fB 10: aload_0 \fR \fB 11: ldc #3 // String LAST_UPDATED\fR \fB 13: invokevirtual #4 // Method\fR \fB getParameter:(Ljava/lang/String;)Ljava/lang/String;\fR \fB 16: putfield #5 // Field date:Ljava/lang/String;\fR \fB 19: aload_0 \fR \fB 20: aload_0 \fR \fB 21: ldc #6 // String EMAIL\fR \fB 23: invokevirtual #4 // Method\fR \fB getParameter:(Ljava/lang/String;)Ljava/lang/String;\fR \fB 26: putfield #7 // Field email:Ljava/lang/String;\fR \fB 29: return \fR \fB public void paint(java\&.awt\&.Graphics);\fR \fB Code:\fR \fB 0: aload_1 \fR \fB 1: new #8 // class java/lang/StringBuilder\fR \fB 4: dup \fR \fB 5: invokespecial #9 // Method\fR \fB java/lang/StringBuilder\&."":()V\fR \fB 8: aload_0 \fR \fB 9: getfield #5 // Field date:Ljava/lang/String;\fR \fB 12: invokevirtual #10 // Method\fR \fB java/lang/StringBuilder\&.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\fR \fB 15: ldc #11 // String by \fR \fB 17: invokevirtual #10 // Method\fR \fB java/lang/StringBuilder\&.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\fR \fB 20: invokevirtual #12 // Method\fR \fB java/lang/StringBuilder\&.toString:()Ljava/lang/String;\fR \fB 23: bipush 100\fR \fB 25: bipush 15\fR \fB 27: invokevirtual #13 // Method\fR \fB java/awt/Graphics\&.drawString:(Ljava/lang/String;II)V\fR \fB 30: aload_1 \fR \fB 31: aload_0 \fR \fB 32: getfield #7 // Field email:Ljava/lang/String;\fR \fB 35: sipush 290\fR \fB 38: bipush 15\fR \fB 40: invokevirtual #13 // Method\fR \fBjava/awt/Graphics\&.drawString:(Ljava/lang/String;II)V\fR \fB 43: return \fR \fB}\fR .fi .if n \{\ .RE .\} .SH "همچنین ببینید (SEE ALSO)" .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} java(1) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} javac(1) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} javadoc(1) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} jdb(1) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} jdeps(1) .RE .br 'pl 8.5i 'bp