web-dev-qa-db-fra.com

Comment utiliser javap

Je dois faire quelque chose de stupide, parce que cela semble être une opération si facile. Pour une raison quelconque, je ne peux tout simplement pas que cette commande fonctionne pour moi. J'ai installé JDK, et je vais dans le

/bin

dossier. J'écris:

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

Mon chemin de fichier actuel pour la classe est

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

L'erreur que je reçois est la suivante:

ERROR:Could not find VariablesTest.Variable

Une commande comme celle-ci fonctionne cependant:

./javap -s Java.lang.String

Ce ne sont pas les seules commandes que j'ai essayées. J'ai littéralement essayé toutes les variations possibles, et aucune d'entre elles ne fonctionne. Mes commandes javac et Java fonctionnent bien.

Aucune suggestion?

11
KWJ2104

Javap fonctionne contre le bytecode .class. Alors pointez le classpath sur le VariablesTestProject/out ou autre chose.

12
Dilum Ranatunga

Si vous souhaitez effectuer des opérations à l'aide de la commande javap, accédez d'abord à l'emplacement du fichier jar dans Invite cmd.

Par exemple:

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

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

Les emplacements ci-dessus sont les emplacements rt.jar. Java.lang.String est l'une des classes de ce fichier jar.

En utilisant javap, vous pouvez obtenir les informations de cette classe.

Par exemple:

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

Une utilisation récente de javap que j'ai trouvée consiste à vérifier quelle version de JDk a compilé un fichier de classe particulier sous Windows:

javap -v path to .class file | findstr major

Cela vous donnera le numéro de version majeur:

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

2
srinivas y

javap est la commande utilisée pour afficher la déclaration de profil/méthode Java d'une classe intégrée/classe définie par l'utilisateur/interfaces/classe abstraite.

-> Si vous voulez voir les méthodes d’une classe prédéfinie, dans ce chemin C:\Program Files\Java\jre1.8.0_171\lib vous avez rt.jar si vous avez installé jdk.

-> Extrayez ce fichier rt.jar dans un dossier D:\rt, puis accédez à ce dossier et saisissez javap Java.util.collection ou javap Java.lang.* ou tout autre package prédéfini pour afficher les méthodes.

-> Si vous souhaitez voir les méthodes de la classe définie par l'utilisateur, accédez à l'espace de travail\javaproject\specificpackage\bin, puis tapez javap classname et vous pourrez voir toutes les déclarations de méthodes.

0
Kiran Kumar D M

Je vais faire simple pour comprendre l’utilisation de Javap Command en Java.

  • javap command est un outil ou vous pouvez le dire dissembler qui peut lire les fichiers de classe.

J'ai un exemple de programme Java comme ci-dessous.

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();
   }
}

Après la compilation, j'ai reçu Bank.class file.Next, mes amis Subbu et Narasimha m'ont demandé la version compilée du fichier source. Plus tard, ils veulent voir quel vikram est réellement utilisé, ils utiliseront la commande suivante pour voir les détails de base, comme les méthodes utilisées dans ce fichier Bank.class.

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

Java propose des outils assez chouettes pour vérifier de nombreuses fonctionnalités, comme javaws. jconsole , javaws , jmap , jhat et jinfo

0
boya vikram