在Java ASM的帮助下创建Java类文件

时间:2017-10-09 00:31:46

标签: java java-bytecode-asm

我正在开发一个项目,我正在尝试自动编写Java代码的过程,我在JAVA Asm的帮助下创建了一个编译器,它创建了字节代码,但是以文本形式,以下是我的输出示例:

    public class prolog/Jprolog 
    {
    public <init>()V
    L0
    LINENUMBER 3 L0
    ALOAD 0
    INVOKESPECIAL java/lang/Object.<init> ()V
    RETURN
    L1
    LOCALVARIABLE this Lprolog/Jprolog; L0 L1 0
    MAXSTACK = 1
    MAXLOCALS = 1
    public static main([Ljava/lang/String;)V
    L0
    LINENUMBER 7 L0
    GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
    LDC "Hello, Jprolog Print command"
    INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/String;)V
    L1
    LINENUMBER 9 L1
    RETURN
    L2
    LOCALVARIABLE args [Ljava/lang/String; L0 L2 0
    MAXSTACK = 2
    MAXLOCALS = 1
    }

现在我想在java编译器上测试它,但它不会接受代码。现在我的问题是如何将其转换为合法的类文件(即.class文件),以便我可以直接在java编译器上运行它。

0 个答案:

没有答案