普通网友 2017-11-28 08:47 采纳率: 100%
浏览 1453

大神们关于javassist 动态编译的问题

//ClassPool:CtClass对象的容器

ClassPool pool = ClassPool.getDefault();

    //通过ClassPool生成一个public新类Emp.java    
    CtClass ctClass = pool.makeClass("javassist.demo.MyCC");    



    //添加自定义方法    
    CtMethod ctMethod = new CtMethod(CtClass.voidType,"printInfo",new CtClass[]{},ctClass);    
    //为自定义方法设置修饰符    
    ctMethod.setModifiers(Modifier.PUBLIC);    
    //为自定义方法设置函数体    
    StringBuffer buffer2 = new StringBuffer();    
    buffer2.append("{\nSystem.out.println(\"begin!\");\n")    

            .append("}");    
    ctMethod.setBody(buffer2.toString());    
    ctClass.addMethod(ctMethod);    

            执行以下代码报错 
            ctClass.toClass(); 

            大神求解决

            Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
StackWalker cannot be resolved to a type
StackWalker cannot be resolved to a type
StackWalker cannot be resolved
StackWalker cannot be resolved to a variable
StackWalker cannot be resolved to a type
StackWalker cannot be resolved to a type
The method dropLookupMode(int) is undefined for the type MethodHandles.Lookup
The method defineClass(byte[]) is undefined for the type MethodHandles.Lookup

at javassist.util.proxy.DefineClassHelper$SecuredPrivileged$3.<init>(DefineClassHelper.java:53)
at javassist.util.proxy.DefineClassHelper$SecuredPrivileged.<clinit>(DefineClassHelper.java:38)
at javassist.util.proxy.DefineClassHelper.<clinit>(DefineClassHelper.java:177)
at javassist.ClassPool.toClass(ClassPool.java:1120)
at javassist.ClassPool.toClass(ClassPool.java:1083)
at javassist.ClassPool.toClass(ClassPool.java:1041)
at javassist.CtClass.toClass(CtClass.java:1278)
at javassist.demo.GenerateNewClassByJavassist.main(GenerateNewClassByJavassist.java:46)
  • 写回答

1条回答

  • threenewbee 2017-11-28 15:45
    关注

    stackwalker是个第三方类
    不知道你说的是不是这个
    http://blog.sina.com.cn/s/blog_648d306d0100qmca.html

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog