Jasmin的Java字节码:为什么屏幕上没有打印消息?

时间:2016-03-11 16:10:48

标签: java bytecode jasmin

我最近对Java字节码感兴趣,并创建了以下Hello World程序。

打印出“Hello World”,但我无法弄清楚为什么不打印“创建真棒对象”。你能帮我搞清楚我做错了吗?

.class public HelloWorld
.super java/lang/Object

.method public <init>()V
    .limit stack 2

    aload_0  ; push 'this' unto stack
    invokespecial java/lang/Object/<init>()V  ; invoke constructor

    getstatic java/lang/System/out Ljava/io/PrintStream;
    ldc "Creating awesome object!"
    invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V

    return
.end method

.method public static main([Ljava/lang/String;)V
    .limit stack 2

    getstatic java/lang/System/out Ljava/io/PrintStream;
    ldc "Hello world"
    invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V

    return
.end method

1 个答案:

答案 0 :(得分:1)

我对Java字节码知之甚少,但在我看来,你并没有在HelloWorld中创建main的实例。如果您不创建实例,则不会调用构造函数,因此您可以使用它。 :)