如何解决java.lang.NoClassDefFoundError:javax/annotation/Generated?

zik*_*iki 7 java annotations hibernate maven

我在我的项目中将jdk更改为9版本,然后与错误相冲突:

Error:java: java.lang.NoClassDefFoundError: javax/annotation/Generated
Run Code Online (Sandbox Code Playgroud)

我尝试通过在pom.com上添加以下内容来解决它,但它对我来说不起作用:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
   <version>${version.compiler.plugin}</version>
   <configuration>
       <!-- fork is needed so compiler args can be used -->
       <fork>true</fork>
       <compilerArgs>
           <arg>-J--add-modules</arg>
           <arg>-Jjava.annotations.common</arg>
       </compilerArgs>
   </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

它有其他方法可以解决吗?

Tho*_*sen 18

将包含所需类的工件添加到类路径中.

看来(未经测试)javax.annotated API就是您所需要的.有关详细信息,请参阅https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api/1.3.1.您可以像以前一样将以下依赖项添加到项目中,它应该存在:

<!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

记得删除编译器参数!

  • 基本上认为JRE变得更小了,而javax中的所有内容.*你需要自己带来 (3认同)

小智 14

implementation 'javax.annotation:javax.annotation-api:1.3.2'
annotationProcessor("javax.annotation:javax.annotation-api:1.3.2")
Run Code Online (Sandbox Code Playgroud)

  • 请在您的答案中包含更多详细信息,而不仅仅是代码。谢谢! (2认同)

Gee*_*ert 5

从 2020 年起,javax.* 模块已迁移到雅加达。所以 2020+ 证明依赖声明现在是:

<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
Run Code Online (Sandbox Code Playgroud)

另请参阅包含说明的博客包含新旧名称的完整表格