wake-up-neo.com

Wie benutzt man javap?

Ich muss etwas Dummes tun, denn das scheint eine so einfache Operation zu sein. Aus irgendeinem Grund kann ich diesen Befehl nicht für mich arbeiten lassen. Ich habe JDK installiert und gehe in die

/bin

mappe. Ich tippe:

./javap -classpath /home/Matt/workspace/VariablesTestProject/src/ -s VariablesTest.Variable

Mein eigentlicher Dateipfad für die Klasse ist

/home/Matt/workspace/VariablesTestProject/src/VariablesTest/Variable.Java

Der Fehler, den ich zurück bekomme, ist:

ERROR:Could not find VariablesTest.Variable

Ein Befehl wie dieser funktioniert jedoch:

./javap -s Java.lang.String

Dies sind nicht die einzigen Befehle, die ich ausprobiert habe. Ich habe buchstäblich jede erdenkliche Variante ausprobiert, und keine davon funktioniert. Meine Java- und Java-Befehle funktionieren einwandfrei.

Irgendwelche Vorschläge?

11
KWJ2104

Javap arbeitet gegen den .class Bytecode. Zeigen Sie also mit dem Klassenpfad auf den VariablesTestProject/out oder was auch immer.

12
Dilum Ranatunga

Wenn Sie Operationen mit dem Befehl javap ausführen möchten, navigieren Sie zuerst zum Verzeichnis jar in der Eingabeaufforderung cmd.

Z.B:

cd /usr/lib/jvm/Java-6-openjdk-i386/jre/lib (Linux)

cd D:\javasoftware\Java\jdk1.6.0_43\jre\lib (Windows)

Die oben genannten Standorte sind die rt.jar-Standorte. Java.lang.String ist eine der Klassen in diesem Jar.

Mit javap können Sie die Informationen aus dieser Klasse erhalten.

Z.B:

cd /usr/lib/jvm/Java-6-openjdk-i386/jre/lib
javap Java.lang.String 
3
Murali

Eine kürzlich von mir gefundene Verwendung von javap besteht darin, zu überprüfen, welche Version von JDk eine bestimmte Klassendatei unter Windows kompiliert hat:

javap -v path to .class file | findstr major

Dies gibt Ihnen die Hauptversionsnummer:

50 - JDK6, 51 - JDK7, 52 - JDK8, 53 - JDK9.

2
srinivas y

javap ist der Befehl, mit dem die Java-Profil-/Methodendeklaration einer eingebauten Klasse/benutzerdefinierten Klasse/Schnittstellen/abstrakten Klasse angezeigt wird.

-> Wenn Sie die Methoden einer vordefinierten Klasse sehen möchten, haben Sie in diesem Pfad C:\Program Files\Java\jre1.8.0_171\librt.jar, wenn Sie jdk installiert haben.

-> Extrahieren Sie diese rt.jar-Datei in einen Ordner D:\rt und wechseln Sie in diesen Ordner. Geben Sie javap Java.util.collection oder javap Java.lang.* oder ein anderes vordefiniertes Paket ein, um die Methoden anzuzeigen.

-> Wenn Sie die benutzerdefinierten Klassenmethoden anzeigen möchten, gehen Sie zum Arbeitsbereich\javaproject\specificpackage\bin und geben Sie javap classname ein. Sie können dann alle Methodendeklarationen anzeigen.

0
Kiran Kumar D M

Ich werde es mit einfachen Worten erklären, wie man Javap Command in Java benutzt.

  • javap Befehl ist ein Werkzeug oder Sie können sagen, es ist ein Disembler, der Klassendateien lesen kann.

Ich habe ein Java-Beispielprogramm wie unten.

class Bank {
   private int code = 210;

   class SBI {
       void display() {
           System.out.println("Code is "+code);
       }
   }

   public static void main(String args[]){
       Bank b = new Bank();
       Bank.SBI sbi = b.new SBI();
       sbi.display();
   }
}

Nach der Kompilierung habe ich die Bank.class-Datei bekommen. Als nächstes fragten mich meine Freunde Subbu und Narasimha, welche Version der Quelldatei kompiliert worden sei. Später möchten sie sehen, welches Vikram tatsächlich verwendet wird. Dann verwenden sie den folgenden Befehl, um die grundlegenden Details wie die verwendeten Methoden zu sehen in dieser Bank.class-Datei.

C:\ >javap Bank.class
Compiled from "Bank.Java"
class Bank {
  Bank();
  public static void main(Java.lang.String[]);
  static int access$000(Bank);
}

Java hat ziemlich coole Tools, um viele Funktionen zu testen. Einige von ihnen sind Javaws. jconsole , javaws , jmap , jhat und jinfo

0
boya vikram