2016-12-20 9 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