web-dev-qa-db-fra.com

Comment résoudre Java.lang.NoClassDefFoundError: javax / annotation / Generated?

J'ai changé jdk en une version 9 dans mon projet, puis je suis entré en collision avec une erreur:

Error:Java: Java.lang.NoClassDefFoundError: javax/annotation/Generated

J'essaie de le résoudre en ajoutant ce qui suit à pom.com mais cela n'a pas fonctionné pour moi:

<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>

At-il une autre façon de résoudre?

7
ziki

Ajoutez un artefact contenant les classes dont vous avez besoin au chemin de classe.

Il semble (non testé) que l'API javax.annotated soit ce dont vous avez besoin. Voir https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api/1.3.1 pour plus de détails. Vous pouvez ajouter la dépendance suivante à votre projet comme n'importe quelle autre et elle doit être présente:

<!-- 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>

N'oubliez pas de supprimer les arguments du compilateur!

16