得到错误:>处理'命令'/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/bin/java''完成,返回值非零

时间:2019-10-28 21:21:24

标签: java gradle

任务':Main.main()'的执行失败。

  

处理'command'/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/bin/java''的退出值非零完成

这是带有Gradle的Java项目。不知道此错误意味着什么。

4 个答案:

答案 0 :(得分:2)

此错误实际上非常普遍。我在Scala项目中也看到了此错误。您需要在main()行上单击父错误,这将向您显示实际错误。就我而言,这是因为我没有下载特定文件,并且存在空指针问题。希望这会有所帮助!

答案 1 :(得分:1)

这是一个非常普遍的错误,我在我的 Java Gradle Spring-Boot 项目中也遇到过。调试如此困难的原因是,即使您为 --stacktrace 命令提供了 --debuggradle bootRun 参数,它也没有给出任何关于错误发生位置的有用线索.

但是,如果您将 Spring-Boot 引导程序代码包装在 try-catch 中并打印如下异常堆栈跟踪,则可以轻松确定这一点:

@SpringBootApplication
public class MyApplicationServer {

    public static void main(String[] args) {
        try {
        SpringApplication.run(MyApplicationServer.class, args);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

就我而言,异常是由于 application.yml 中未加引号的特殊字符 (*) 导致解析失败。以下堆栈跟踪摘录:

java.lang.IllegalStateException: Failed to load property source from location 'classpath:/application-local.yml'
        at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:535)
        ...(truncated logs)
        at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:358)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:317)
        at com.ekart.citylogistics.payout.MyApplicationServer.main(MyApplicationServer.java:24) Caused by: while scanning an alias  in 'reader', line 5, column 44:
     ... endpoints.web.exposure.include: *
                                         ^ expected alphabetic or numeric character, but found  (10)  in 'reader', line 5, column 45:
     ... ndpoints.web.exposure.include: *
                                         ^
        at org.yaml.snakeyaml.scanner.ScannerImpl.scanAnchor(ScannerImpl.java:1447)
        at org.yaml.snakeyaml.scanner.ScannerImpl.fetchAlias(ScannerImpl.java:918)
        at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:366)
        ...(truncated logs)

答案 2 :(得分:0)

尝试通过Main.main()行单击父错误。这应该向您显示实际发生的错误。对我来说,发生这种情况是因为我没有在application.properties文件中设置数据库连接。希望这会有所帮助。

答案 3 :(得分:0)

当您在计算机上安装了多个JDK(在我的Mac中,安装了JDK8和JDK11)后,正确更新了IDE编译器版本后,此错误消失了。如果需要进行更改,您可能需要重新启动IDE。与我的情况一样,在IntelliJ IDE中,它在使缓存无效并重新启动IDE之后可以工作。