2016-12-20 2 views
-1

初めてJavassistを使用する場合、javassistを使用してクラスを作成し、いくつかのメソッドを追加しました。 JVM。私が書いたコードは次のとおりです。Java - Javassistで作成したクラスとJVMをリンクする方法

package up.coo.tp10; 

import java.io.DataOutputStream; 
import java.io.FileOutputStream; 

import javassist.CannotCompileException; 
import javassist.ClassPool; 
import javassist.CtClass; 
import javassist.CtMethod; 
import javassist.CtNewMethod; 

public class Main { 

/** 
* @param args 
*/ 
public static void main(String[] args) { 
    // TODO Auto-generated method stub 

    ClassPool pool = ClassPool.getDefault(); 
    CtClass cc = pool.makeClass("COOUnitGenerator"); 
    try { 
     CtMethod cm4 = CtNewMethod.make("public void test4(){System.out.println(\" === Method 4 === \");}", cc); 
     CtMethod cm1 = CtNewMethod.make("public void test1(){System.out.println(\" === Method 1 === \");}", cc); 
     CtMethod cm3 = CtNewMethod.make("public void test3(){System.out.println(\" === Method 3 === \");}", cc); 
     CtMethod cm2 = CtNewMethod.make("public void test2(){System.out.println(\" === Method 2 === \");}", cc); 
     CtMethod cmSetUp = CtNewMethod.make("public void setUp(){System.out.println(\" === Set Up === \");}", cc); 

     cc.addMethod(cm4); 
     cc.addMethod(cm1); 
     cc.addMethod(cm3); 
     cc.addMethod(cm2); 
     cc.addMethod(cmSetUp); 

    } catch (CannotCompileException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 
+0

http://jboss-javassist.github.io/javassist/tutorial/tutorial.html#load – Holger

答えて

0

まず、クラスパスでJavassistを使ってコードをコンパイルする必要があります。 javac -cp javassist.jar *.java

コードを実行することができます。 java -cp ".;javassist.jar" up.coo.tp10.Main

関連する問題