我自己的Java编译器&字节码:调用函数的问题

时间:2013-06-17 21:19:02

标签: java compiler-construction bytecode

我正在用Java编写一个Java编译器,JVM作为目标机器,我正在努力让函数调用工作。但是当我尝试运行我的编译器创建的类文件时,我收到此错误: “线程中的异常”主“java.lang.VerifyError :(类:测试,方法:测试签名:(I)I)函数中的错误返回类型”。

示例代码:

 public class Test
 {
     public static int test(int a)
     {
        return a;
     }

     public static void main(String[] args)
     {
        int b;
        b = test(b);    
     }
  }

创建的类文件本身:

Test.class

(如果您尝试下载它,Google会说它包含病毒。所以我提供了一张图片

创建的类文件:

Classfile & javap

我不知道该类文件有什么问题。

1 个答案:

答案 0 :(得分:2)

方法testreturn指令而不是ireturn指令结束。您不能使用前者从方法返回int;你必须使用后者。