1. ホーム
  2. java

java.lang.IllegalAccessError: クラス lombok.javac.apt.LombokProcessor はクラス com.sun.tools.javac.processing.JavacProcessingEnvironment にアクセスできない [重複]。

2023-09-17 07:41:58

質問

私はコーディングの初心者で、Lombokプラグインを使用して、特定のクラスのフィールドのためにゲッター/セッターなどを自動的に作成しようとしています。そうすると、次のようなエラーが表示されます。

エラーが発生しました。

java: java.lang.IllegalAccessError: クラス lombok.javac.apt.LombokProcessor (無名モジュール @0x3b67ef9b) はクラス com.sun.tools.javac.processing.JavacProcessingEnvironment (モジュール jdk.compiler 内) にアクセスできません。モジュール jdk.compiler が com.sun.tools.javac.processing を無名モジュール @0x3b67ef9b にエクスポートしていないためです。

オンラインで検索したところ、このエラーは OpenJDK 15 の問題に関連していることがわかりましたが、私は現在 OpenJDK 16 を使用しているため、このエラーがまだ表示されることに戸惑っています。

このスレッドは解決策を持っていると主張しています。 https://github.com/rzwitserloot/lombok/issues/2681#issuecomment-748616687 が、プラグインを導入しても何も変わらないようで、まだエラーが出ます。

初心者なので些細なミスをしている可能性が高いのですが、どなたかご存知の方いらっしゃいましたら教えてください。

データ(Lombok)を使用したクラスです。

import lombok.Data;

@Data
public class Ingredient {

    private final String id;
    private final String name;
    private final Type type;

    public enum Type {
        WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE
    }

}


私のPomファイル。

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>sia</groupId>
    <artifactId>taco-cloud</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>taco-cloud</name>
    <description>Taco Cloud Project</description>
    <properties>
        <java.version>16</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

どのように解決するのですか?

少なくとも 1.18.22 を含む Lombok のバージョンに切り替えてください。 修正版

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.22</version>
</dependency>

lombokの最新版を見るには、次のリンクをクリックしてください。 search.maven.org