java.lang.NoClassDefFoundError: com/sun/tools/javac/processing/JavacProcessingEnvironment

2 篇文章 0 订阅
1 篇文章 0 订阅

最近做项目遇到场景:通过前端提交的JAVA代码,创建java文件,然后再编译JAVA文件称class文件,

具体实现的细节,就不细说了,最后执行的结果能正常执行,但控制台报错:

Can't initialize javac processor due to (most likely) a class loader problem: java.lang.NoClassDefFoundError: com/sun/tools/javac/processing/JavacProcessingEnvironment
public class SysExceptions implements Serializable {
       ^
  	at lombok.javac.apt.LombokProcessor.getJavacProcessingEnvironment(LombokProcessor.java:411)
  	at lombok.javac.apt.LombokProcessor.init(LombokProcessor.java:91)
  	at lombok.core.AnnotationProcessor$JavacDescriptor.want(AnnotationProcessor.java:124)
  	at lombok.core.AnnotationProcessor.init(AnnotationProcessor.java:177)
  	at lombok.launch.AnnotationProcessorHider$AnnotationProcessor.init(AnnotationProcessor.java:73)
  	at com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init>(JavacProcessingEnvironment.java:500)
  	at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next(JavacProcessingEnvironment.java:597)
  	at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:690)
  	at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
  	at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
  	at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
  	at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
  	at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
  	at com.sun.tools.javac.main.Main.compile(Main.java:523)
  	at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
  	at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
  	at com.leen.service.util.CompilerUtil.compile(CompilerUtil.java:54)
  	at com.leen.service.service.impl.DisGenerateServiceImpl.complie(DisGenerateServiceImpl.java:137)
  	at com.l.main.leen.controller.DisGenerateController.disGenerate(DisGenerateController.java:43)
  	at com.l.main.leen.controller.DisGenerateController$$FastClassBySpringCGLIB$$5dd4ad53.invoke(<generated>)
  	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
  	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
  	at com.l.main.leen.controller.DisGenerateController$$EnhancerBySpringCGLIB$$f6c287bb.disGenerate(<generated>)
  	at com.l.main.leen.controller.DisGenerateController$$FastClassBySpringCGLIB$$5dd4ad53.invoke(<generated>)
  	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
  	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684)
  	at com.l.main.leen.controller.DisGenerateController$$EnhancerBySpringCGLIB$$c2058c9b.disGenerate(<generated>)
  	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  	at java.lang.reflect.Method.invoke(Method.java:498)
  	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189)
  	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
  	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
  	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
  	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
  	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
  	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
  	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
  	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
  	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)
  	at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
  	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
  	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
  	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
  	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
  	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
  	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
  	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
  	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
  	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
  	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
  	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
  	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
  	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
  	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
  	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
  	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)
  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
  	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
  	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
  	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
  	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
  	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
  	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
  	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
  	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
  	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
  	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
  	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
  	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
  	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
  	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)
  	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
  	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
  	at java.lang.Thread.run(Thread.java:748)
  Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.processing.JavacProcessingEnvironment
  	at java.lang.ClassLoader.findClass(ClassLoader.java:530)
  	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  	at lombok.launch.ShadowClassLoader.loadClass(ShadowClassLoader.java:530)
  	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  	... 103 more
1 个警告

说白了就是找不到 JDK下面的tools.jar,怎么会找不到这个JAR呢?

上网找,有说是lombok版本低,于是我升级到1.18.6,不行!

会不会没配置环境变量,配置完后,不行!

各种费解,最主要再我LINUX系统就能正常执行,到我WINDOWS电脑上就报错!

一脸懵逼的情况,想到手动把这个jar包添加本地maven库可不可以呢?

step 1:

mvn install:install-file -Dfile=D:\1111\jars\tools.jar -DgroupId=com.sun.tools -DartifactId=tools -Dversion=1.0 -Dpackaging=jar

step2:
<dependency>
    <groupId>com.sun.tools</groupId>
    <artifactId>tools</artifactId>
    <version>1.0</version>
</dependency>

好使了...,别问啥原因,到现在我也不知道。。。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 这个错误通常表示在运行时不到特定的类。在这种情况下,它是由于缺少 AWTUtilities 类所致。 这个问题可能是由于以下原因之一: 1. 缺少必要的库文件或 JAR 文件。 2. 使用的 Java 版本过旧,不支持该类。 3. 代码中引用了已经被弃用或移除的类。 解决此问题的方法可能包括: 1. 确认您的项目中包含了正确的库文件或 JAR 文件,或者手动添加缺少的依赖项。 2. 尝试使用更新的 Java 版本,如果您的应用程序需要使用 AWTUtilities 类,请确保您使用的 Java 版本支持该类。 3. 更新您的代码以使用最新的 API,避免使用已被弃用或移除的类和方法。 ### 回答2: java.lang.NoClassDefFoundError: com/sun/awt/AWTUtilities是Java中的一个错误,它表示在程序运行时无法com.sun.awt.AWTUtilities这个类。 这个错误通常是由于运行时环境中缺少com.sun.awt.AWTUtilities类的引用所致。这个类是Java 2D API中的一部分,目的是提供一些用于操作窗口、透明度等UI效果的方法。 要解决这个错误,首先需要确认java.awt包中是否包含com.sun.awt.AWTUtilities类。在某些Java版本中,这个类可能已经被标记为过时或被删除。如果不到该类,需要检查程序依赖的Java版本是否正确。 另外,如果程序中直接或间接地引用了com.sun.awt.AWTUtilities类,可以尝试使用其他类或方法来替代它。在Java的新版本中,可能已经提供了类似的功能或替代方法。 另外,还可以尝试更新Java运行时环境版本,以确保它能够包含com.sun.awt.AWTUtilities类。有时使用旧版本的Java可能会导致这个错误。 总结来说,解决java.lang.NoClassDefFoundError: com/sun/awt/AWTUtilities错误的步骤包括: 1. 确认Java运行时环境中是否包含com.sun.awt.AWTUtilities类。 2. 检查程序依赖的Java版本是否正确。 3. 尝试使用其他类或方法替代com.sun.awt.AWTUtilities类。 4. 更新Java运行时环境版本,以确保包含所需的类。 通过以上步骤,可以解决这个错误,使程序能够正常运行。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值