用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)

链接地址: http://www.djcxy.com/p/53765.html

上一篇: Programming in Java bytecode

下一篇: foreach statement cannot operate on variables of type 'object'