Tool per verificare nome del pacchetto e il nome di classe della classe all'interno di un file .class
-
29-09-2019 - |
Domanda
C'è qualche strumento o tecnica per farmi interrogare il contenuto di un file Java .class? Voglio sapere il nome completo della classe e quale metodo si definisce. Ho pensato che forse javap
potrebbe aiutarmi con questo, ma non riesco a capire come.
Soluzione
è la classe contenuta nel file .class sempre lo stesso come il nome del file (esclusi i .class)
In pratica, sì. Ogni implementazione Java che ho incontrato si basa su percorsi di file di classe per individuare le classi da caricare, ecc.
In teoria, un classloader potrebbe usare qualche altro meccanismo, e quindi potrebbe classi di convertirli nel formato che non hanno alcuna relazione con i nomi di classe. Tuttavia, non vedo alcun vantaggio nel farlo.
, anche se io uso qualche altra lingua, come Groovy, Jython o Scala?
Dato che nelle lingue compilare ai file bytecode che vengono poi caricati dai caricatori di classi standard, allora è praticamente un dato che i nomi delle classi nei file bytecode corrispondono ai percorsi dei file ... altrimenti i caricatori di classe non lo farei essere in grado di individuare i file di classe. Tuttavia, questo non significa necessariamente che i nomi delle classi nei file bytecode sono identici a Scala / Jython / Groovy gli identificatori utilizzati nel codice sorgente. In realtà, questo non è nemmeno vero per Java; per esempio. i nomi file di classe per le classi anonime e interne per non è la stessa come identificatori nel codice sorgente di Java.
Altri suggerimenti
chiamata javap ClassName
(non javap ClassName.class
).
Se il .class
solo per javap ClassName
Se il vostro .class
è in una sottocartella javap path/to/ClassName
o javap path.to.ClassName
Risorse:
Java Decompiler . Dovrebbe darvi le informazioni che desiderate.