IDEAがエラーを報告しました:プロセス ‘コマンド‘ ./Java/jdk1.8.0_131/bin/java.exe ‘’がゼロ以外の終了値で終了しました1解決しました!



Idea Reported An Error



IDEAのgradleプロジェクトでテスト中のmain()メソッドは、エラーを実行します。

スレッド「メイン」の例外java.lang.NoClassDefFoundError:com / xxxx / xxxx / xxxx / xxxx
java.lang.ClassLoader.defineClass1(ネイティブメソッド)で
java.lang.ClassLoader.defineClass(ClassLoader.java:763)で
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)で
java.net.URLClassLoader.defineClass(URLClassLoader.java:467)で
java.net.URLClassLoader.access $ 100(URLClassLoader.java:73)で
java.net.URLClassLoader $ 1.run(URLClassLoader.java:368)で
java.net.URLClassLoaderで1. r u n(U R L C l a s s L o a der。jav a:362)a t j a va。 s e c u r i ty。 A c c e s s C o n t r o l l er。 d o P r i v i l e g e d(N a t i v e M e t h o d)a t j a va。 n et。 U R L C l a s s L o a d er。 f i n d C l a s s(U R L C l a s s L o a der。jav a:361)a t j a va。 l a ng。 C l a s s L o a d er。 l o a d C l a s s(C l a s s L o a der。jav a:424)a t s un。 m i sc。ランチャー1.run(URLClassLoader.java:362)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:361)at java.lang.ClassLoader.loadClass(ClassLoader。 java:424)sun.misc.Launcherで1run((URLClssLまたはdですrjv36)。tjvsですcurtYccですssCまたはntrまたはllですrdまたはPrvlですgですd((NtvですMですthまたはd)。tjvnですtURLClssLまたはdですrfndClss((URLClssLまたはdですrjv361)。tjvlngClssLまたはdですrlまたはdClss((ClssLまたはdですrjv44)。tsunmscLunchですrAppClassLoader.loadClass(Launcher.java:335)
java.lang.ClassLoader.loadClass(ClassLoader.java:357)で
java.lang.Class.forName0(ネイティブメソッド)で
java.lang.Class.forName(Class.java:348)で
fks_graphql_runner.xxxx.getFilesBySchemaName(xxxx.java:50)で
fks_graphql_runner.xxxx.main(xxxx.java:24)で
原因:java.lang.ClassNotFoundException:com.xxxx.xxxx.xxxx.xxxx
java.net.URLClassLoader.findClass(URLClassLoader.java:381)で
java.lang.ClassLoader.loadClass(ClassLoader.java:424)で
sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:335)で
java.lang.ClassLoader.loadClass(ClassLoader.java:357)で
…さらに16



失敗:ビルドは例外で失敗しました。

原因:java.lang.ClassNotFoundException:com.xxxx.xxxx.xxxx.xxxx



タスク「:xxxx.main()」の実行に失敗しました。

プロセス「コマンド「C:/ProgramFiles/Java/jdk1.8.0_131/bin/java.exe」」がゼロ以外の終了値1で終了しました

クラスはパスにあり、ブレークポイントを使用してデバッグした後、Class.forName()でエラーが報告されます。



解決策1:

[ファイル]-> [設定]-> [ビルド、実行、展開]-> [ビルドツール]-> [Gradle]を開き、[テストの実行]を[InterlliJIDEA]に変更します。

画像

解決策2:

[実行するクラスの構成の編集]をクリックし、[コマンドラインの短縮]オプションをJARマニフェストに変更します。

画像

クラスパスが長すぎるか、VMパラメータが多い場合、プログラムを開始できません。その理由は、ほとんどのオペレーティングシステムにはコマンドラインの長さの制限があるためです。この場合、IntelliJIDEAはクラスパスを短縮しようとします。

コマンドラインを短くする(コマンドラインを短くする)4つのパラメーター:

なし: これはデフォルトのオプションです。 IDEは長いクラスパスを短縮しません。コマンドラインがオペレーティングシステムの制限を超えると、IDEAはアプリケーションを実行できなくなりますが、ツールチップは短縮機能の構成を提案します。

JARマニフェスト: IDEは、長いクラスパスを一時的なclasspath.jarに渡します。元のクラスパスは、MANIFEST.MFでclasspath.jarのクラスパス属性として定義されています。

ユーザーローカルのデフォルト: レガシー属性。このEAPより前に作成されたプロジェクトの場合、このオプションは自動的に設定されます。 IDEは、idea / workspace.xmlファイルの属性: 'dynamic.classpath'およびidea.config.path / options / options.xmlファイルの属性: 'idea'で設定されたプロパティ値に従ってこの設定を構成します。 dynamic.classpath.jar '。

クラスパスファイル: IDEは、長いクラスパスをテキストファイルに書き込みます。

【公式文書】 :Https://blog.jetbrains.com/idea/2017/10/intellij-idea-2017-3-eap-configurable-command-line-shortener-and-more/

内向き:初めて遭遇したとき、テストはIDEAで実行されました。 2回目に丸一日遭遇したとき、NoClassDefFoundErrorが報告されました。コマンドラインを短くすることとは何の関係がありますか? ? ? ?もともとは依存していると考えられていたスコープの問題でしたが、変更後も無効でした。最後に、さりげなく交換したところ、盲目の猫がネズミの死骸に遭遇しました。