当前位置: 代码迷 >> java >> 用Java字节码编程
  详细解决方案

用Java字节码编程

热度:56   发布时间:2023-08-02 10:42:11.0

我想用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”。 你能澄清一下你的意思吗?

我创建了一个新的 ,它向后兼容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,但如果有兴趣,我可以继续。

你考虑过 (Java字节码编辑器)吗?
它基于Apache的字节码工程库( )

也许这篇文章可以帮助你入门: ( ,但你会得到这个想法)。

也会派上用场:D

字节代码被写为实际字节,通常不能由普通文本编辑器编辑。

这意味着您需要将文本表示转换为二进制的东西。 一个合理的起点是像这样的汇编程序。

这个人在这里指导您逐步编写hello world程序的类文件。 非常令人兴奋的东西:-)

  相关解决方案