夏季疯 2025-02-07 14:42 采纳率: 0%
浏览 17

黑马JavaWeb课程的TliasWeb项目

class lombok.javac.apt.LombokProcessor (in unnamed module @0x5d7f1e59) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x5d7f1e59

写黑马JavaWeb课程的TliasWeb项目出现了问题,之前都没有问题,也不知道是不是隔了一个月再打开有问题了,或者是装了docker出现了环境问题

  • 写回答

4条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-02-07 14:42
    关注
    让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
    如果答案让您满意,请采纳、关注,非常感谢!
    ## 问题描述 在使用黑马JavaWeb课程的TliasWeb项目时,您遇到了以下错误信息:
    class lombok.javac.apt.LombokProcessor (in unnamed module <a>&#64;0x5d7f1e59) </a> cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module <a>&#64;0x5d7f1e59</a>
    

    这个错误通常与Java模块系统有关,尤其是当您使用的是JDK 9及更新版本时。

    问题分析

    1. Java模块化:从Java 9开始,Java引入了模块化系统,许多内部API(如com.sun.tools.javac)的访问被限制。这意味着在没有正确依赖或模块导出的情况下,某些库(如Lombok)可能无法正常工作。
    2. Lombok版本:Lombok可能与您当前的JDK版本不兼容。请确保您使用的是Lombok的最新版本。某些旧版本的Lombok可能无法与Java 9及更高版本的模块系统融合。
    3. IDE配置:若您使用IDE(如IntelliJ IDEA或Eclipse),请确保IDE与项目的JDK版本一致,并且从正确的JDK中加载了依赖。

    解决方案

    1. 检查Lombok版本

    确保使用最新版本的Lombok。可以在官方Lombok页面下载最新版本。

    2. 更新JDK的启动参数

    在IDE中或通过构建系统(如Maven或Gradle)中,添加以下JVM参数以开放模块导出:

    --add-exports jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED
    
    • 在Maven中,您可以在pom.xml中添加下面的设置:
    <properties>
        <argLine>--add-exports jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</argLine>
    </properties>
    
    • 在Gradle中,可以在build.gradle中添加如下配置:
    tasks.withType(JavaCompile) {
        options.compilerArgs += '--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED'
    }
    

    3. 清理和重建项目

    在应用变更后,务必清理并重建项目,以确保所有更改生效: - Maven:使用mvn clean install命令。 - Gradle:使用./gradlew clean build命令。

    4. 检查Docker环境

    如果您怀疑是Docker引起的问题,确保您在Docker容器中使用的JDK版本与您本地开发环境中的JDK版本兼容。有时,Docker容器中 JDK 的版本与本地的版本不同,可能导致兼容性问题。 您可以在Dockerfile中指定JDK版本,例如:

    FROM openjdk:11
    

    示例

    假设我们使用Maven作为构建工具,以下是一个包含Lombok依赖的pom.xml示例:

    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.example</groupId>
        <artifactId>TliasWeb</artifactId>
        <version>1.0.0</version>
        
        <properties>
            <lombok.version>1.18.20</lombok.version>
            <argLine>--add-exports jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</argLine>
        </properties>
        
        <dependencies>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
                <scope>provided</scope>
            </dependency>
            <!-- 其他依赖 -->
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <source>11</source>
                        <target>11</target>
                        <compilerArgs>
                            <arg>--add-exports</arg>
                        </compilerArgs>
                        <annotationProcessorPaths>
                            <path>
                                <groupId>org.projectlombok</groupId>
                                <artifactId>lombok</artifactId>
                                <version>${lombok.version}</version>
                            </path>
                        </annotationProcessorPaths>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    

    结论

    以上说明了导致您在运行TliasWeb项目时遇到该错误的可能原因和相应的解决方案。通过检查Lombok版本、更新启动参数、清理重建项目及Docker环境的配置,您应该能够解决此问题。如果您还有其他疑问,请继续提问。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月7日