127 votes

java.lang.NoClassDefFoundError : Impossible d'initialiser la classe org.codehaus.groovy.vmplugin.v7.Java7

J'obtiens cette exception java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7 and java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.reflection.ReflectionCache ) lorsque je lance l'application Spring Boot

J'utilise les outils suivants

Sortie de STS 3.9.10
Ouvrir JDK 14 64 bit
Spring boot 2.2.5

Il a bien fonctionné avec oracle jdk mais il ne fonctionne pas avec openjdk. Je n'utilise aucune librairie groovy. Il s'agit d'un projet spring boot basé sur maven.

0 votes

Vous devriez préciser quel outil de construction vous utilisez.

141voto

Tarmo Points 675

Comment exécuter l'application ? C'est probablement parce que vous utilisez Gradle comme système de construction et JDK14 et que la version de Gradle est ancienne. Référence : https://github.com/gradle/gradle/issues/10248

Si vous utilisez Gradle Wrapper, référez-vous à $PROJECT_ROOT/gradle/wrapper/gradle-wrapper.properties . L'URL de distribution des biens doit être : distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip

S'il s'agit d'une version plus ancienne, changez-la, exécutez ./gradlew clean build et réessayer.

2 votes

Merci beaucoup, j'ai essayé beaucoup de choses pour faire fonctionner React Native sur ma machine. Ceci a fait l'affaire !

1 votes

Pour faire suite à cela, j'utilise maven et brew m'a récemment mis à jour vers OpenJDK 14, et j'ai commencé à recevoir cette erreur. A partir du lien de cette réponse vers le problème gradle, j'ai trouvé ce problème groovy : issues.apache.org/jira/browse/GROOVY-9211 qui a depuis été corrigé dans Groovy 2.5.10 -- assurez-vous donc de mettre à jour votre version de Groovy vers cette version ou une version plus récente. Cela a résolu le problème pour moi !

0 votes

Et utiliser gradle-7.0-bin.zip pour Java 16 -- "À partir de Gradle 7.0, l'exécution de Gradle lui-même et la construction de projets JVM avec Java 16 est pleinement soutenue". docs.gradle.org/7.0/release-notes.html

50voto

mohamad alsheekh Points 519

J'ai résolu le problème en modifiant le fichier gradle-wrapper.properties à l'intérieur du fichier gradle dossier. (Pas .gradle) :

Modifier cette ligne, de :

distributionUrl=https\://services.gradle.org/distributions/gradle-6.2-all.zip

à :

distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip

reconstruire et c'est bon.

0 votes

Il fonctionne comme un charme, une idée de la raison ?

47voto

Study Mania Points 1

Dans le fichier android/gradle/wrapper/gradle-wrapper.properties , s'assurer que le distributionUrl est le suivant :

distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip

Note : Si vous avez installé jdk 14

13voto

BertKoor Points 141

J'ai eu le même problème sur un projet Maven & SpringBoot, sans Gradle.

La dépendance à org.codehaus.groovy est probablement transitive à travers spring-cloud-contract-verifier. Exécuter mvn dependency:tree pour afficher l'ensemble de l'arbre de dépendance.

J'ai corrigé le problème en mettant à jour la version de spring-cloud-contract-maven-plugin à 2.2.3-RELEASE.

7voto

Smollet Points 85

Vérifiez que votre projet fonctionne avec Java 14 même s'il est préparé pour Java 8.

Mon IntelliJ Idea donnait la même erreur en essayant d'exécuter une tâche Gradle qui fonctionnait parfaitement en ligne de commande avec le JDK 8. Le JDK par défaut du projet ItelliJ Idea était pourtant 14.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X