用Java字节码编程
我正在用Java字节码编写一个简短的程序(也许是一个Hello World)。 我只想用我的文本编辑器编写字节码并运行它。 我将如何做到这一点? 有一个例子吗? 谢谢!
你可以试试茉莉!
.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
你使用下面的代码编译
> java -jar jasmin.jar hello.j
然后你像任何一个班级一样运行它:
> java HelloWorld Hello World.
更新
我看到你的问题提到“不使用Javac或Java”。 你能澄清你的意思吗?
我创建了一个新的Java字节码汇编程序,它与Jasmin向后兼容,但也增加了许多新功能并略微简化了语法。
下面是一个如何编写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
我还编写了一个关于字节码汇编的教程。 它目前只涵盖你好,世界,但如果有兴趣,我可以继续。
你有没有考虑JBE(Java字节码编辑器)?
它基于Apache的字节码工程库(BCEL)
上一篇: Programming in Java bytecode
下一篇: foreach statement cannot operate on variables of type 'object'