我想要在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
我还写了一个字节码汇编教程,目前只涵盖了Hello,World,如果有兴趣的话我可以继续编写。
字节码是实际的字节编写而成,通常不易被普通文本编辑器编辑。
这意味着您需要一些将文本表示转换为二进制的工具。一个合理的起点可能是像Jasmin这样的汇编程序。
printf
:-) - Ciro Santilli OurBigBook.com