Estoy trabajando en un proyecto en el que realizamos una gran cantidad de transferencias de objetos remotos entre un servicio Java y clientes escritos en otros varios idiomas. Dadas nuestras limitaciones actuales, he decidido ver qué se necesitaría para generar código basado en una clase Java existente. Básicamente necesito tomar un archivo .class
(o una colección de ellos) analizar el bytecode para determinar todos los miembros de los datos y quizás getters/setters y luego escribir algo que pueda dar salida al código en un idioma diferente para crear una clase con la misma estructura .Inspeccionar mediante programación archivos .class
No estoy buscando decompiladores estándar como JAD. Necesito poder tomar un archivo .class
y crear un modelo de objeto de sus miembros y métodos de datos. ¿Es esto posible?
+1 para ASM sobre BCEL. Mucho mejor API. – skaffman
En realidad, ASM proporciona un modelo de objetos si lo desea. Ver su Tree API. –
Después de evaluar todas las opciones enumeradas aquí hasta el momento, ASM es definitivamente el mejor en mi humilde opinión para la inspección de archivos .class. Estoy de acuerdo en que el patrón de visitante es mucho más limpio que el modelo de BCEL. Gracias por el consejo. –