2017-03-03 6 views
20

最近、依存関係管理のために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に更新することに何らかの関連がありますか?

答えて

28

それはGradleの3.4以降のバージョンに固有であるのIntelliJ IDEAの既知の問題です:

すでにf IntelliJ IDEA 2017.12016.3.6にixedされています。

IntelliJ IDEAを更新できない場合や、IntelliJ IDEAを更新したくない場合は、回避策としてGradle 3.3以降を使用することもできます。

+1

他の人が同じ問題に遭遇した場合の注意点。これは3.5で問題が発生するため、Gradle 3.4固有の問題ではありません。この修正は、IntelliJを更新しても機能するので、ソリューションはそのままです。 –

+1

私は同じ問題に直面しています。私の場合、IntelliJ/Mavenでコンパイルして、ターミナル(java -jar myapp.jar)で実行すると実行できます。しかし、IntelliJメニューから実行しようとすると、このエラーになります。また、Eclipseで実行すると、すべて正常に動作します。非常に奇妙な! IDEAは非常に不安定です!これは、2年以上、unfortunatellyそれを使用した後、私の結論です。 –

+0

再度同じ問題2017.3 :( –

0

gradleバージョンを3.3に設定すると、この問題が修正されました。