最近、依存関係管理のためにIntelliJ IDEAとGradleを使用して新しいプロジェクトを作成しました。プロジェクトで必要なすべての依存関係を解決し、それを実行した後、私は次のエラーを取得する:IntelliJ IDEAアップグレード後のNoClassDefFoundError
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
問題は(私はグアバからCache
を使用した簡単なmain
プログラムでも、それを試してみました解決の依存関係からクラスでのみ発生します)。 IntelliJのはExternal Libraries
ディレクトリ内のすべての解決の依存関係を持っている、(何も赤ではありません、注釈は黄色です)
@SpringBootApplication
public class Application {
public static void main(String... args) {
SpringApplication.run(Application.class, args);
}
}
すべてのフィールドは正しい色を示している:エラーの原因となったクラスは以下の通りです。緑色の「実行」矢印を使用してプロジェクトを開始します。
fatle jarを作成すると、コマンドラインからgradleを使用するとすべて正常に動作します。私は既に "Invalidate Caches/Restart"を試み、リポジトリーからプロジェクトを何回も引っ張って、gradleキャッシュをクリアし、すべての依存関係を手作業で取り除き、すでに働いていた古いプロジェクトを実行しているCommunity Edition、Ultimate Editionを使って実行しようとしましたいくつかの時間前(そして今働いていない)。
IntelliJ IDEAを2016.3.4、build 163.12024.16に更新することに何らかの関連がありますか?
他の人が同じ問題に遭遇した場合の注意点。これは3.5で問題が発生するため、Gradle 3.4固有の問題ではありません。この修正は、IntelliJを更新しても機能するので、ソリューションはそのままです。 –
私は同じ問題に直面しています。私の場合、IntelliJ/Mavenでコンパイルして、ターミナル(java -jar myapp.jar)で実行すると実行できます。しかし、IntelliJメニューから実行しようとすると、このエラーになります。また、Eclipseで実行すると、すべて正常に動作します。非常に奇妙な! IDEAは非常に不安定です!これは、2年以上、unfortunatellyそれを使用した後、私の結論です。 –
再度同じ問題2017.3 :( –