作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我通过获取基类的字节并通过自定义类适配器接受它们来生成一个类。当我对作为基类的产品生成的字节调用定义类时,我收到此错误:
Caused by: java.lang.NoClassDefFoundError: com/example/MyClassBase
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
... 24 more
Caused by: java.lang.ClassNotFoundException: com.example.MyClassBase
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 26 more
基类已由 URLClassLoader 从 jar 中加载。 DefineClass 中是否有一些底层方法调用因无法找到加载的类而引发异常?我该如何解决这个问题?
请记住,以不同的方式加载基类是不切实际的。作为问题的参数,我会说假设它必须通过 URLClassLoader 从另一个 jar 加载。
最佳答案
我认为您正在尝试通过无法看到该类的 ClassLoader 加载依赖于 com.example.MyClassBase 的修改后的字节码。当您创建自己的 ClassLoader 实例来加载修改后的类时,您应该是 chaining it to an existing ClassLoader using its constructor建立加载器的父/子层次结构,这有助于避免这个问题。
关于java - 使用ClassLoader.defineClassCond从通过ASM创建的类的字节中获取Class对象,NoClassDefFoundException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7780168/
我是一名优秀的程序员,十分优秀!