小编Nar*_*ana的帖子

如何使用ASM 4.0修改Java字节码

我是ASM框架的新手.我已经在这个ASM框架上工作了一个星期.我在网上看过关于解析类和从头开始生成.class文件的教程.但我无法遵循如何修改ASM中的现有类.

请帮助我.

我无法遵循ClassVisitor,ClassWriter和ClassReader之间的执行流程.

请通过为我提供以下代码的ASM示例来解决我的问题.

public class ClassName {


public void showOne()
{
    System.out.println("Show One Method");
}

public static void main(String[] args) {

    ClassName c=new ClassName();
    c.showOne();

}

}
Run Code Online (Sandbox Code Playgroud)

上述类应修改为:

public class ClassName {


public void showOne()
{
    System.out.println("Show One Method");
}


public void showTwo()
{
    System.out.println("Show Two Method");
}

public static void main(String[] args) {

    ClassName c=new ClassName();
    c.showOne();
    c.showTwo();

}

}
Run Code Online (Sandbox Code Playgroud)

什么应该是ASM代码来修改它?

我使用ASMifier工具生成代码.但我不知道在哪里应用它.

请帮我.+

java bytecode java-bytecode-asm

7
推荐指数
1
解决办法
3482
查看次数

Java语法的访客方法在ANTLR 4.4中不起作用

我是ANTLR框架的新手。我已经为此工作了一个星期。现在我需要解析Java文件并提取数据。我正在使用ANTLR 4进行解析。我使用内置工具中的ANTLR创建Lexer,Parser和Visitor文件。当我尝试使用Visitor方法时,不会被调用并返回null值。

这是编码。

我产生了 JavaLexer, JavaParser, JavaVisitor, JavaBaseVisitor, JavaListener

package com.antlr;

import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.*;

import java.io.FileInputStream;
import java.io.InputStream;


public class ExtractInterfaceVisitor {


    public  static class AnnVisitor extends JavaBaseVisitor<String> {

        @Override
        public String visitAnnotation (JavaParser.AnnotationContext ctx) 
        {
            System.out.println("Annotation");
            return ctx.getText();
         }

@Override
 public String visitClassDeclaration( JavaParser.ClassDeclarationContext ctx)
 {

     System.out.println("Class Declaration");
     return ctx.getText(); 
 }
 }


public static void main(String[] args) throws Exception {
   String inputFile = null;
   inputFile =  "C:/Users/User/Desktop/antlr/java1/Demo.java"; //Contains a Java File
   InputStream is = System.in;
   is …
Run Code Online (Sandbox Code Playgroud)

java grammar antlr4

5
推荐指数
2
解决办法
3881
查看次数

标签 统计

java ×2

antlr4 ×1

bytecode ×1

grammar ×1

java-bytecode-asm ×1