java.lang.NoClassDefFoundError: Nu s-a putut inițializa clasa org.codehaus.groovy.vmplugin.v7.Java7 (Programare, Java, Primăvară Boot)

user3365200 a intrebat.

Primesc această excepție 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) când execut aplicația Spring Boot

Folosesc instrumentele de mai jos

STS 3.9.10 release
Open JDK 14 64 bit
Spring boot 2.2.5

A funcționat bine cu Oracle jdk, dar nu reușește să ruleze cu Openjdk. Nu folosesc nicio librărie groovy. Acesta este un proiect spring boot bazat pe maven.

15 răspunsuri
Tarmo

Cum se execută aplicația? Probabil pentru că folosiți Gradle ca sistem de construcție și JDK14, iar versiunea Gradle este veche. referință: https://github.com/gradle/gradle/issues/10248

Dacă folosiți Gradle Wrapper, atunci consultați $PROJECT_ROOT/gradle/wrapper/gradle-wrapper.properties. Proprietatea distributionUrl ar trebui să fie:distributionUrl=https://services.gradle.org/distributions/gradle-6.3-bin.zip

Dacă este o versiune mai veche, atunci modificați-o, rulați ./gradlew clean build și încercați din nou.

Comentarii

  • Mulțumesc foarte mult, am încercat multe lucruri încercând să fac React Native să funcționeze pe mașina mea. Acest lucru a făcut truc! –  > Por Dave Vronay.
  • Pentru a urmări acest lucru, folosesc maven și brew actualizat recent la OpenJDK 14, așa că am început să primesc această eroare. Din linkul acestui răspuns la problema Gradle, am găsit această problemă Groovy: issues.apache.org/jira/browse/GROOVY-9211 care de atunci a fost rezolvată în Groovy 2.5.10 – așa că asigurați-vă că actualizați versiunea groovy la acea versiune sau la una mai nouă. A rezolvat problema pentru mine! –  > Por pennstatephil.
arslan

În fișierul android/gradle/wrapper/gradle-wrapper.properties, asigurați-vă că în fișierul distributionUrl este după cum urmează:

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

Notă: Dacă ați instalat jdk 14

mohamad alsheekh

Am rezolvat-o doar prin editarea gradle-wrapper.properties în interiorul folderului gradle nu .gradle :

de la:

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

to:

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

reconstruiți și este în regulă .

Comentarii

  • funcționează ca un farmec, vreo idee de ce? –  > Por RowanX.
BertKoor

Am aceeași problemă pe un Maven & proiect SpringBoot, nu Gradle orice.

Dependența de org.codehaus.groovy este probabil tranzitivă prin spring-cloud-contract-verifier. Rulați mvn dependency:tree pentru a vizualiza întregul arbore de dependență.

Am rezolvat-o prin actualizarea versiunii spring-cloud-contract-maven-plugin la 2.2.3-RELEASE

Serghei Shcherbakov

Verificați dacă proiectul dvs. rulează cu Java 14, chiar dacă este pregătit pentru Java 8.

Ideea mea IntelliJ Idea dădea aceeași eroare atunci când încerca să execute o sarcină Gradle care funcționa perfect în linia de comandă cu JDK 8. JDK-ul implicit al proiectului ItelliJ Idea era totuși 14.

Jeeka

în cazul meu, versiunea JRE utilizată în aplicația Run Configuration era diferită de versiunea JDK țintă din pom.xml

Comentarii

  • Acesta este cu siguranță domeniul de aplicare pentru problema mea. Pentru mine, însă, trebuie doar să schimb JRE din oricare dintre cele pe care le-am instalat în „Bundled” pur și simplu. CMIIW, dar se pare că am instalat corect proiectul cu mvn clean install, și atunci poate că „Bundled” înseamnă că folosesc doar pachetul instalat în loc de JRE/JDK-ul instalat pe mașina mea. Dar într-adevăr CMIIW. Acest lucru funcționează pentru mine. –  > Por rahmatns.
godsim

folosești o bibliotecă terță parte care aduce în org.codehaus.groovy dependențe? Dacă da, puteți încerca să înlocuiți singuri dependențele groovy necesare cu cele mai actuale versiuni.

În cazul meu a fost vorba de org.liquibase:liquibase-groovy-dsl,așa că am făcut acest lucru:

    <dependency>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-groovy-dsl</artifactId>
        <version>2.1.1</version>
        <exclusions>
            <exclusion>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy-sql</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy</artifactId>
        <version>3.0.3</version>
    </dependency>

    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-sql</artifactId>
        <version>3.0.3</version>
    </dependency>

Kiryha

Am rezolvat această problemă atunci când am integrat Facebook 7.19.2 și Google Play Games 0.10.09.

În cazul meu JDK și SDK folosind (și alte în Edit/Preferences/External -> Tools-Android) căi implicite Unity:

JDK

C:/ProgramFiles/Unity/Hub/Editor/2019.2.12f1/Editor/Data/PlaybackEngines/AndroidPlayer/ToolsOpenJDKWindows

SDK

C:/Program Files/Unity/Hub/Editor/2019.2.12f1/Editor/Data/PlaybackEngines/AndroidPlayerSDK

În Variabilele de mediu (System Proporites/Advanced) a adăugat următorul:

Găsiți (sau faceți clic pe o nouă variabilă în Variabilele utilizatorului)

  • JAVA_HOME și adăugați calea JDK rădăcină.

  • JAVA_BIN și adăugați calea JDK/bin

  • JAVA_LIB și adăugați calea JDK/lib

De asemenea, adăugați aceste căi în Variabilele de sistem la variabila „Path”.

Nu utilizați SDK din Unity implicit și JDK din Unity nu implicit

Apoi reporniți Unity(și mai bine PC-ul).

Apoi, în editorul Unity – Assets/Play -> Service -> Resolve/Android -> Resolver/Force -> Resolve

Toate funcționează bine.

Arpit Patel

Dacă utilizați Android Studio 4.0 sau mai sus și aveți erori ca mai jos

    Cause: invalid type code: 17
    Cause: invalid type code: fe
    Cause: invalid type code: 13
java.lang.NoClassDefFoundError: Could not initialize class

Sau

Spune că ceva în neregulă cu JDK, atunci urmați pașii de mai jos pentru a rezolva eroarea.

Pasul 1: Mai întâi ștergeți .gradle și .idea din directorul proiectului și reporniți Android Studio. Asigurați-vă că a dispărut din coșul de reciclare.

Pasul 2: Mergeți la Structura proiectului

Pasul 3: Selectați Locația SDK din panoul din stânga din fereastra Project Structure.

Pasul 4: Mergeți la JDK Location și faceți clic pe săgeata în jos, apoi selectați jre în loc de jdk

C:Program FilesAndroidAndroid Studiojre

Și va rezolva erorile. Reconstruiți proiectul

Notă: jre vine cu instalarea android studio 4, nu sunt sigur de versiunea mai veche.

Această soluție funcționează pentru mine.

Erik Finnman

În cazul meu, combinația a fost IntelliJ 2020.2, Kotlin 1.3.72, Maven 3.6.1 și aplicația SpringBoot 2.2.1. Nu s-a folosit deloc Gradle în proiect.

Cumva IntelliJ trecuse să folosească OpenJDK14 – la revenirea la OpenJDK11 totul a început să funcționeze din nou.

Comentarii

  • Revenirea la versiunea JDK care fusese ridicată din greșeală a funcționat și în cazul meu. –  > Por Adam Wise.
Sandip Jadhav

Am rezolvat acest lucru selectând calea JRE instalat în fereastră => preferences => java => installed JRE => remve existing & select from local directory.

Asigurați-vă că aveți variabila java_home setată în variabila de mediu

Jan Cizmar

Dacă sunteți în căutarea unei soluții similare cu cea împărtășită de @godsim, dar pentru pluginul gradle liquabase, modificați secțiunea de configurare din build.gradle pentru a exclude dependența groovy a liquabase:

configurations {
    ...
    liquibaseRuntime.exclude group: "org.codehaus.groovy"
}

și apoi adăugați manual groovy în secțiunea de dependențe:

dependencies {
    ...
    liquibaseRuntime('org.liquibase:liquibase-core:3.8.1')
    liquibaseRuntime('org.codehaus.groovy:groovy-all:3.0.3')
    liquibaseRuntime 'org.postgresql:postgresql'
    liquibaseRuntime('org.liquibase:liquibase-groovy-dsl:2.1.2')
    liquibaseRuntime('org.liquibase.ext:liquibase-hibernate5:3.10.2')
    liquibaseRuntime('org.springframework.boot:spring-boot-starter-data-jpa')
    liquibaseRuntime sourceSets.main.output
    ...
}

Gulshan Yadav

Această problemă este rezolvată pentru mine doar atunci când am actualizat compileSdkVersion și targetSdkVersion la 30 cu minSdkVersion 19

Alled Luviette

Obținea eroarea atunci când folosea versiuni vechi de spotbugs-maven-plugin plugin și versiunile corespunzătoare spotbugs dependență maven corespunzătoare.

S-a rezolvat prin actualizarea ambelor la 4.2.0.

user8116670

Treceți la JDK 11, ar trebui să funcționeze.