IDEA报错:Process ‘command ‘./Java/jdk1.8.0_131/bin/java.exe‘‘ finished with non-zero exit value 1 解决!

当使用IDEA的Gradle项目运行测试类的main方法时,可能出现NoClassDefFoundError。错误源于类找不到,可能由于类路径过长或依赖问题。解决方案包括更改IDEA设置,选择Run tests using为IntelliJ IDEA,或修改编辑配置中的Shorten command line选项。这两个方法能有效解决由于命令行长度限制导致的问题。
摘要由CSDN通过智能技术生成

IDEA的下gradle项目运行test下的main()方法报错:

Exception in thread “main” java.lang.NoClassDefFoundError: com/xxxx/xxxx/xxxx/xxxx
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader 1. r u n ( U R L C l a s s L o a d e r . j a v a : 362 ) a t j a v a . s e c u r i t y . A c c e s s C o n t r o l l e r . 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 v a . n e t . U R L C l a s s L o a d e r . f i n d C l a s s ( U R L C l a s s L o a d e r . j a v a : 361 ) a t j a v a . l a n g . C l a s s L o a d e r . l o a d C l a s s ( C l a s s L o a d e r . j a v a : 424 ) a t s u n . m i s c . L a u n c h e r 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) at sun.misc.Launcher 1.run(URLClassLoader.java:362)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.net.URLClassLoader.findClass(URLClassLoader.java:361)atjava.lang.ClassLoader.loadClass(ClassLoader.java:424)atsun.misc.LauncherAppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at fks_graphql_runner.xxxx.getFilesBySchemaName(xxxx.java:50)
at fks_graphql_runner.xxxx.main(xxxx.java:24)
Caused by: java.lang.ClassNotFoundException: com.xxxx.xxxx.xxxx.xxxx
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
… 16 more

FAILURE: Build failed with an exception.

Caused by: java.lang.ClassNotFoundException: com.xxxx.xxxx.xxxx.xxxx

Execution failed for task ‘:xxxx.main()’.

Process ‘command ‘C:/Program Files/Java/jdk1.8.0_131/bin/java.exe’’ finished with non-zero exit value 1

在路径下能找到该类,经过断点调试发现在Class.forName()报错。

解决方案一:

打开File->Settings->Build,Execution,Deployment->Build Tools->Gradle,将Run tests using改成InterlliJ IDEA。

在这里插入图片描述

解决方案二:

点击要运行的类的Edit Configurations,将Shorten command line选项改成JAR manifest。

在这里插入图片描述

类路径太长,或者您有许多VM参数,则无法启动该程序。原因是大多数操作系统都有命令行长度限制。在这种情况下,IntelliJ IDEA将尝试缩短类路径。

Shorten command line(缩短命令行)四个参数:

None: 这是默认选项。IDE不会缩短长类路径。如果命令行超出了操作系统限制,则IDEA将无法运行您的应用程序,但是工具提示将建议配置缩短器。

JAR Manifest: IDE通过临时classpath.jar传递长类路径。原始类路径在MANIFEST.MF中定义为classpath.jar中的类路径属性。

User-local default: 旧版属性。对于在此EAP之前创建的项目,将自动设置此选项。IDE将根据在idea / workspace.xml文件,属性:“ dynamic.classpath”和idea.config.path / options / options.xml文件,属性:“ idea”中设置的属性值来配置此设置。 dynamic.classpath.jar”。

classpath file: IDE将把长的类路径写入文本文件。

【官方文档】:https://blog.jetbrains.com/idea/2017/10/intellij-idea-2017-3-eap-configurable-command-line-shortener-and-more/

内心:第一次遇到的时候测试用IDEA运行就行,第二次再遇到弄了一整天,明明报的是NoClassDefFoundError,跟缩短命令行有什么关系????原本是认为依赖的scope问题,修改后还是无效。最后随便改改,居然瞎猫碰到死耗子。

引用\[1\]:Execution failed for task ':core:Kafka.main()'. > Process 'command 'C:/Program Files/Java/jdk1.8.0_77/jre/bin/java.exe'' finished with non-zero exit value 1 。 引用\[2\]:碰到的问题: 1)运行java的main方法出现 Processcommand ‘D:/jdk8/bin/java.exe’’ finished with non-zero exit value 1 将idea的gradle按如下设置 2)Failed to apply plugin \[id ‘com.gradle.build-scan’\] What went wrong: An exception occurred applying plugin request \[id: ‘com.gradle.build-scan’, version: ‘1.8’\] 。 引用\[3\]:Open File(spring-beans\spring-beans.gradle ) 点击:Open File 然后注释掉 //compileGroovy.dependsOn = compileGroovy.taskDependencies.values - ‘compileJava’ 。 问题:Process 'command 'D:/JDK8/bin/java.exe'' finished with non-zero exit value 1 回答: 出现"Process 'command 'D:/JDK8/bin/java.exe'' finished with non-zero exit value 1"的错误通常是由于Java程序在执行过程中遇到了问题导致的。这个错误可能有多种原因,比如代码错误、依赖问题或者环境配置错误。根据提供的引用内容,有两个可能的解决方案。首先,你可以检查你的代码,确保没有语法错误或逻辑错误。其次,你可以检查你的依赖项和环境配置,确保它们正确设置。如果问题仍然存在,你可以尝试注释掉一些代码或者调整一些配置,以便找到问题的根本原因。希望这些解决方案能帮助你解决这个问题。 #### 引用[.reference_title] - *1* [kafka Processcommand ‘/jdk1.8.0_77/jre/bin/java.exe finished with non-zero exit value 1](https://blog.csdn.net/qq_31686241/article/details/125113723)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [IDEA导入spring5.1源码的构建](https://blog.csdn.net/qq_40088250/article/details/104219666)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值