Soru IntelliJ IDEA yükseltmesinden sonra NoClassDefFoundError


Yakın zamanda, bağımlılık yönetimi için IntelliJ IDEA ve Gradle kullanarak yeni bir proje oluşturdum. Proje tarafından ihtiyaç duyulan tüm bağımlılıkları çözdükten ve çalıştırdıktan sonra aşağıdaki hatayı alıyorum:

java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
    at com.some.fancy.name.Application.main(Application.java:13)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 6 more

Sorun sadece çözülmüş bağımlılıklardan gelen sınıflarla gerçekleşir (Ben de basit bir şekilde denedim) main kullanarak programı Cache Guava'dan). Hatanın neden olduğu sınıf şöyledir:

@SpringBootApplication
public class Application {
    public static void main(String... args) {
        SpringApplication.run(Application.class, args);
    }
}

Tüm alanlar doğru renkle gösterilir (ek açıklamalar sarıdır, hiçbir şey kırmızıdır), IntelliJ'in tüm bağımlı bağımlılıkları vardır. External Libraries dizin. Projeyi başlatmak için yeşil "run" okunu kullanıyorum.

Komut satırından iğne kullanırken, bir yağ kavanozu oluştururken her şey iyi çalışıyor. Zaten "Caches / Restart Invalidate" denedim, projeyi depodan birkaç kez çektim, gradle önbellekleri temizledim, tüm bağımlılıkları el ile kaldırdım, daha önce çalışmış olan eski projeleri çalıştıran Community Edition, Ultimate Edition'ı kullanarak çalıştırmayı denedim bir süre önce (ve şimdi çalışmıyor).

Bir şekilde IntelliJ IDEA 2016.3.4 sürümüne geçmek 163.12024.16 sürümüyle ilgili olabilir mi?


21
2018-03-03 20:02


Menşei




Cevaplar:


IntelliJ IDEA'da Gradle 3.4 ve sonraki sürümlerine özgü bilinen bir sorun var:

Zaten sabit IntelliJ IDEA 2017.1 ve 2016/03/06.

IntelliJ IDEA'yı güncellemek istemiyorsanız veya istemiyorsanız, Gradle 3.3 veya daha eski bir çözüm olarak kullanabilirsiniz.


29
2018-03-03 20:38



Başkalarının aynı problemle karşılaşması durumunda sadece bir not. 3.5 ile sorun hala devam ettiği için Gradle 3.4'e özgü değildir. Düzeltme, (IntelliJ'i güncelleyerek) çalışsa da çözüm işe yarıyor. - Hugo Migneron
Ben de aynı problemle karşı karşıyayım. Benim durumumda, onu IntelliJ / Maven ile derlediğimde ve onu (java -jar myapp.jar) terminalde çalıştırdığımda çalıştırabilirim. Ama ben IntelliJ menüsünden çalıştırmak çalıştığınızda, bu hatayı gider. Ayrıca, Eclipse ile çalıştırırsam her şey yolunda gider. Çok ilginç! IDEA çok kararsız! Bu, 2 yıldan uzun bir süre kullanıldıktan sonra sonuçsuz. - Raffael Bechara Rameh
2017.3 ile tekrar aynı sorun :( - Stefan Haustein
@StefanHaustein aynı sorun değil, lütfen raporla youtrack.jetbrains.com/issues/IDEA - CrazyCoder
Not; Benim gradle sarmalayıcıyı gradle 3.3'e geri döndürmeyi denedim (ayrıca bunun bir regresyon olup olmadığını görmek için), ancak gravel 3.3. google () desteklemiyor, bu yüzden artık platform projeleri için artık bir seçenek yok gibi görünüyor ... - Stefan Haustein


Bu sorunu gradient versiyonunu 3.3 olarak düzeltti.


0
2018-02-02 05:23