cglib动态代理demo异常
直接运行就会有这问题,翻了翻源码有点迷,是不是框架出现了改动啥的?
如下是异常信息:
`C:\environment\jdk-18_windows-x64_bin\jdk-18.0.1.1\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:64824,suspend=y,server=n -javaagent:C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2021.3\captureAgent\debugger-agent.jar -Dfile.encoding=UTF-8 -classpath "C:\IdeaProjects\guide-rpc-framework-learning\target\classes;C:\Users\Administrator.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;C:\Users\Administrator.m2\repository\org\slf4j\slf4j-simple\1.7.25\slf4j-simple-1.7.25.jar;C:\Users\Administrator.m2\repository\io\netty\netty-all\4.1.42.Final\netty-all-4.1.42.Final.jar;C:\Users\Administrator.m2\repository\com\esotericsoftware\kryo\4.0.2\kryo-4.0.2.jar;C:\Users\Administrator.m2\repository\com\esotericsoftware\reflectasm\1.11.3\reflectasm-1.11.3.jar;C:\Users\Administrator.m2\repository\com\esotericsoftware\minlog\1.3.0\minlog-1.3.0.jar;C:\Users\Administrator.m2\repository\org\objenesis\objenesis\2.5.1\objenesis-2.5.1.jar;C:\Users\Administrator.m2\repository\cglib\cglib\3.3.0\cglib-3.3.0.jar;C:\Users\Administrator.m2\repository\org\ow2\asm\asm\7.1\asm-7.1.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2021.3.21\lib\idea_rt.jar" github.javaguide.proxy.dynamicProxy.cglibDynamicProxy.Main
Connected to the target VM, address: '127.0.0.1:64824', transport: 'socket'
Exception in thread "main" java.lang.ExceptionInInitializerError
at github.javaguide.proxy.dynamicProxy.cglibDynamicProxy.CglibProxyFactory.getProxy(CglibProxyFactory.java:9)
at github.javaguide.proxy.dynamicProxy.cglibDynamicProxy.Main.main(Main.java:5)
Caused by: net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InaccessibleObjectException-->Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @63c12fb0
at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:464)
at net.sf.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:339)
at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:96)
at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:94)
at net.sf.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61)
at net.sf.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:119)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:294)
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:221)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:174)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:153)
at net.sf.cglib.proxy.Enhancer.
Process finished with exit code 1 `
已解决!!! 错误原因:我用的jdk18,改成jdk8就好了。 可能由于jdk之间的不兼容吧!