Pregunta ¿Es posible ver el bytecode del archivo Class? [duplicar]


Posible duplicado:
¿Hay un editor java classfile / bytecode para editar las instrucciones? 

El código fuente de Java se compila en bytecode, que en realidad está en el archivo de clase. ¿Es posible ver el bytecode de una clase compilada?

Si es posible, ¿se puede editar?

¿Hay un plugin de eclipse para eso disponible?


73
2017-07-23 06:57


origen


Respuestas:


Sí. Puedes usar el javap comando que se incluye con el JDK para ver el código de bytes de una clase. Por ejemplo:

javap -c com.mypackage.MyClass

Hay varias bibliotecas y herramientas que lo ayudan a trabajar con bytecode de Java, por ejemplo ASM y Jazmín.


112
2017-07-23 07:00



El JDK viene con javap que es una herramienta para desmontar el código de bytes dentro de un archivo de clase. La edición en el nivel de código de bytes es posible. Mira esto BCEL, una biblioteca java diseñada para leer, manipular y escribir archivos de clase.

Se puede encontrar una lista de herramientas y bibliotecas para editar el código de bytes en java-net. Por ejemplo JBE, un editor de código de Java Byte que incluso viene con una GUI.


22
2017-07-23 07:00



Para ver los bytecodes

Olvídate de javap! El mejor complemento que he usado es el "ASM: complemento de esquema de código de bytes para Eclipse"

http://asm.ow2.org/eclipse/index.html

Es de ASM (un marco de manipulación bytecode).

Muestra los códigos de bytes (que solicitó), los elementos de la pila (estilo jvm) y cómo generar el mismo resultado (para producir los mismos códigos de byte) utilizando los métodos de asm framework.

Mejor aún es el hecho de que lo hace mientras tiene el código fuente seleccionado. No tiene que encontrar el archivo .class en el directorio bin para inspeccionar su bytecode.

Para editarlos

Usando el código:

  • ASM: basado en los visitantes, muy, muy rápido.
  • BCEL: Carga el bytecode como una descripción en memoria del archivo de clase.
  • Javassit: el más fácil de usar, te permite hacer coincidencias de patrones y reemplazar expresiones.

A mano: JBE


14
2017-08-03 01:56



Para mi experiencia, jclasslib es uno de los mejores visualizadores de bytecode.

En cuanto a los editores, hay dos tipos: bibliotecas de manipulación de códigos de bytes y editores con GUI. Esta pregunta se ha formulado algunas veces en SO, puede verificar las respuestas y los enlaces que se proporcionaron.

Solo tenga cuidado de que la edición de bytecode no sea tan sencilla como cree. los JVMS impone muchas restricciones sobre cómo deberían ser los archivos de clase, y hay una gran posibilidad de que una de tus ediciones viole uno de ellos.

Verifique estas otras preguntas:

Editando un archivo .class directamente, jugando con los códigos de operación

¿Es posible ver el bytecode del archivo Class?

Programación en bytecode Java


1
2017-07-23 07:28



Intente utilizar - dirtyJOE - Java Overall Editor es un editor y visor complejo para compilar java binarios (archivos .class).


0
2018-02-26 20:30