tabla quién que maquina intérprete interprete extension estructura ejemplos cursos codigo java bytecode

java - quién - tabla de codigo bytecode



Programación en bytecode Java (6)

¡Podrías probar Jasmin !

.class public HelloWorld .super java/lang/Object .method public static main([Ljava/lang/String;)V .limit stack 3 .limit locals 1 getstatic java/lang/System/out Ljava/io/PrintStream; ldc "Hello World." invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V return .end method

Lo compilas usando:

> java -jar jasmin.jar hello.j

Y luego lo ejecutas como cualquier clase:

> java HelloWorld Hello World.

Actualizar

Veo que su pregunta menciona "sin usar Javac o Java". ¿Podrías aclarar cómo te refieres a esa declaración?

Estoy buscando escribir un programa corto (tal vez un Hello World) en el código de bytes de Java. Solo quiero escribir el bytecode usando mi editor de texto y ejecutarlo. ¿Cómo haría esto? ¿Tienes un ejemplo? ¡Gracias!


¿Has considerado JBE (Java Bytecode Editor)?
Está basado en la Biblioteca de Ingeniería de Bytecode de Apache ( BCEL )


El código de bytes se escribe como bytes reales, que normalmente no son fácilmente editables por un editor de texto normal.

Esto significa que necesitará algo que convierta una representación textual a binario. Un lugar razonable para comenzar sería un ensamblador como Jasmin .



He creado un nuevo ensamblador de bytecode de Java que es compatible con Jasmin con versiones anteriores, pero también agrega muchas características nuevas y simplifica un poco la sintaxis.

Aquí hay un ejemplo de cómo podrías escribir un programa Hello World.

.class public hello .super java/lang/Object .method public static main : ([Ljava/lang/String;)V .limit stack 10 .limit locals 10 getstatic java/lang/System out Ljava/io/PrintStream; ldc "Hello World!" invokevirtual java/io/PrintStream println (Ljava/lang/Object;)V return .end method

También he escrito un tutorial sobre ensamblado de bytecode . Actualmente solo cubre Hello, World, pero puedo continuar si hay interés.