Herramienta para comprobar el nombre del paquete y el nombre de la clase de la clase dentro de un archivo .class

StackOverflow https://stackoverflow.com/questions/3923799

  •  29-09-2019
  •  | 
  •  

Pregunta

¿Hay alguna herramienta o técnica que me permita consultar el contenido de un archivo .class de Java? Quiero saber el nombre completo de la clase y qué método se define. Pensé que tal vez javap podría ayudarme con esto, pero no puedo encontrar la manera.

¿Fue útil?

Solución

  

Es la clase contenida en el archivo .class siempre el mismo que el nombre del archivo (excluyendo .class)

En la práctica, sí. Cada aplicación Java que he encontrado se basa en los nombres de ruta del archivo de clase para ubicar las clases para ser cargados, etc.

En teoría, un cargador de clases podría utilizar algún otro mecanismo, y por lo tanto podría clases almacenar en archivos que no guardan relación con los nombres de las clases. Sin embargo, no veo ninguna ventaja en hacer eso.

  

incluso si uso algún otro idioma, como Groovy, Scala o Jython?

Dado que los idiomas compilan a los archivos de código de bytes que luego son cargados por los cargadores de clases estándar, entonces es casi un hecho que los nombres de las clases en los archivos de código de bytes corresponden a los nombres de ruta de archivos ... de lo contrario los cargadores de clases no lo haría ser capaz de localizar los archivos de clase. Sin embargo, esto no significa necesariamente que los nombres de las clases en los archivos de código de bytes son idénticos a Scala / Jython / Groovy los identificadores utilizados en el código fuente. De hecho, esto no es cierto incluso para Java; p.ej. los nombres de archivo de clase para las clases anónimas e interior porque no son los mismos que los identificadores en el código fuente de Java.

Otros consejos

javap ClassName de llamadas (no javap ClassName.class).

Si su .class sólo para javap ClassName
Si su .class está en una subcarpeta o javap path/to/ClassName javap path.to.ClassName


Recursos:

Probar Java Decompiler . Debe darle la información que desea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top