0
import javassist.bytecode.Bytecode;
import javassist.bytecode.ConstPool;
public class Coverage {

    public static void main(String[] args) {

        ConstPool cp = new ConstPool("Hello");
        byte[] b = new byte[100];
        Bytecode bc = new Bytecode(cp);
        b = bc.get();
        System.out.println("Bytecode start");
            for(int i = 0 ; i < b.length ; i++)
             {
                System.out.println(b);
             }
        System.out.println("Bytecode end");
    }

}            

bc.get()は何も返しません。私の目的は、クラスのバイトコードを取得することです。

4

2 に答える 2

0

まあ、あなたSystem.out.println(b);は毎回配列全体を印刷していますが、必要ですSystem.out.println(b[i]);が、とにかくうまくいくとは思いません。試す...

public static void main(String[] args)  {

    ClassPool pool = ClassPool.getDefault();

    try {
        CtClass cc = pool.get("java.lang.String");
        byte[] bytes = cc.toBytecode();

        System.out.println("Bytecode start");
        for (Byte b : bytes) {
            System.out.println(b);
        }
        System.out.println("Bytecode end");

    } catch (NotFoundException e) {
        e.printStackTrace();
    } catch (CannotCompileException e) {
        e.printStackTrace();
    }

}
于 2012-09-11T12:03:50.530 に答える
0

コード カバレッジ ツールを作成するには、このBCEL チュートリアルを参照してください。

于 2012-09-17T11:36:48.160 に答える