Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

273
Visualizações
Obtenga Bytecode de una clase java no cargada

Tengo un proyecto con una carpeta "entrada" que contiene algunos archivos java (p. ej., test.java). Esta carpeta no es una fuente raíz y así es. Solo quiero analizar los archivos en la carpeta de entrada con mi programa. Un objetivo es obtener el código de bytes de los archivos en la carpeta de entrada y guardarlo en una cadena. Leí mucho sobre cómo obtener bytecodes de las clases (agentes de Java, bcel) pero no tengo muy claro cómo debo comenzar. ¿Tienes alguna idea y consejo para mí?

Editar: Compilé mis archivos y los guardé en una matriz de bytes. Usé la biblioteca javaassist como lo mencionó alguien. Mi código es ahora:

 ClassPool pool = ClassPool.getDefault(); CtClass cc = pool.get("Test"); byte[] b = cc.toBytecode(); System.out.println(Arrays.toString(b));

Como resultado estoy obteniendo:

 [-54, -2, -70, -66, 0, 0, 0, 52, 0, 93, 10, 0, 25, 0, 52, 8, 0, 53, 7, 0,...,115]

¿Cómo puedo obtener de la matriz de bytes la forma de código de bytes "legible por humanos", por ejemplo:

 iconst_0 // 03 istore_0 // 3b iinc 0, 1 // 84 00 01 iload_0 // 1a iconst_2 // 05 imul // 68 istore_0 // 3b goto -7 // a7 ff f9

¿Alguien tiene alguna idea?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

"bytecode" se refiere a archivos de clase compilados. No tiene sentido preguntar cómo obtener el código de bytes de un archivo .java porque no hay código de bytes para obtener. Debe compilarlos con javac , Eclipse o similar. Luego, puede leer los archivos .class resultantes de la forma que desee.

Editar: para convertir el archivo de clase en una forma legible por humanos, necesita un desensamblador. Un desensamblador limitado llamado javap está incluido en el JDK, por lo que el enfoque más simple sería simplemente usarlo. Alternativamente, puede usar el desensamblador Krakatau , que admite funciones mucho más avanzadas que javap.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda