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?
Javap fonctionne contre le bytecode .class
. Alors pointez le classpath sur le VariablesTestProject/out
ou autre chose.
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
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.
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.
Je vais faire simple pour comprendre l’utilisation de Javap Command en Java.
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