Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

472
Visualizações
java.lang.IllegalAccessError: la clase lombok.javac.apt.LombokProcessor no puede acceder a la clase com.sun.tools.javac.processing.JavacProcessingEnvironment

Soy algo nuevo en la codificación y estoy tratando de usar el complemento Lombok para crear automáticamente Getters/Setters, etc. para mis campos de una clase específica. Al hacerlo, recibo el siguiente error:

El error:

java: java.lang.IllegalAccessError: la clase lombok.javac.apt.LombokProcessor (en el módulo sin nombre @ 0x3b67ef9b) no puede acceder a la clase com.sun.tools.javac.processing.JavacProcessingEnvironment (en el módulo jdk.compiler) porque el módulo jdk.compiler sí lo hace no exportar com.sun.tools.javac.processing a un módulo sin nombre @ 0x3b67ef9b

Después de buscar un poco en línea, descubrí que este error está relacionado con un problema en OpenJDK 15, pero actualmente estoy usando OpenJDK 16, por lo que estoy confundido porque todavía recibo este error.

Este hilo afirma tener una solución: https://github.com/rzwitserloot/lombok/issues/2681#issuecomment-748616687 pero después de implementar el complemento, no parece haber ninguna diferencia y sigo recibiendo el error.

Lo más probable es que haya cometido un error trivial ya que soy un principiante, pero si alguien sabe lo que me estoy perdiendo, hágamelo saber.

Clase usando @Data (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 } }

Mi archivo 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>
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

@ FrankyFred ha proporcionado una solución temporal para poder usar Lombok: https://stackoverflow.com/a/66981165/12586904


En lo que respecta a mi investigación y las diversas respuestas que recibí a esta pregunta, parece que actualmente no hay una forma posible de ejecutar Lombok en OpenJDK 16 . Como tal, una alternativa al uso de Lombok es colocar los métodos @data manualmente en su código. El siguiente enlace explica brevemente cómo hacer esto en caso de que sea nuevo en este tema: https://javabydeveloper.com/lombok-data-annotation/#:~:text=Lombok%20Data%20annotation%20(%20%40Data %20),como%20bien%20como%20a%20constructor.

Ejemplo de pseudocódigo que representa lo que realmente representa @Data :

 @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode public class User1 { private Long id; private String username; }

La anotación Lombok @Data minimiza el uso de más anotaciones cuando necesita generar los siete requisitos anteriores, pero básicamente logran los mismos objetivos cuando se ejecuta el código.

De ninguna manera soy un experto en esto, pero con suerte, esto ayudará a cualquier otra persona que se quede atascada usando Lombok pero necesite encontrar una alternativa ya que su libro/tutorial podría utilizarlo y todavía le gustaría continuar con el libro/tutorial.

over 4 years ago · Santiago Trujillo Relatório

0

Parece que se puede resolver agregando un complemento en pom.xml

 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>16</source> <target>16</target> <!-- <release>16</release>--> <fork>true</fork> <compilerArgs> <arg>--enable-preview</arg> <arg>-Xlint:all</arg> <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg> <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg> <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg> <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg> <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg> <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg> <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg> <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg> <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg> <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED</arg> </compilerArgs> <!--for unmappable characters in classes--> <encoding>UTF-8</encoding> <showDeprecation>true</showDeprecation> <showWarnings>true</showWarnings> <!--for lombok annotations to resolve--> <!--contradictory to maven, intelliJ fails with this--> <annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.16</version> </path> </annotationProcessorPaths> </configuration> </plugin>

solución del acceso de Lombok a los paquetes internos de jdk.compiler incompatibles con Java-16

over 4 years ago · Santiago Trujillo Relatório

0

Cambie al menos a la versión 1.18.22 de Lombok que contiene la corrección

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

Para ver la última versión de lombok, siga este enlace en search.maven.org

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda