簡體   English   中英

出現錯誤:> Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/bin/java'' 以非零退出值 1 結束

[英]Got error: > Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

任務 ':Main.main()' 執行失敗。

進程 'command'/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/bin/java'' 以非零退出值 1 結束

這是一個帶有 Gradle 的 java 項目。 不知道這個錯誤是什么意思。

這是一個非常普遍的錯誤,我的Java Gradle Spring-Boot項目也遇到過。 調試如此困難的原因是,即使您向gradle bootRun命令提供--stacktrace--debug arguments ,它也不會提供任何有用的線索來說明錯誤發生的位置。

但是,如果您將 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)

這個錯誤其實很籠統。 我也在我的 Scala 項目中看到了這個錯誤。 您需要使用 main() 行單擊父錯誤,這將顯示實際錯誤。 就我而言,這是因為我沒有下載特定文件並且存在 null 指針問題。 希望這可以幫助!

對於那些使用 IntelliJ IDE 的人,如果上面的解決方案不適用於您的項目,我還有另一個解決方案:Preferencees->Build, Exectution, Deployment->Build Tools->Gradle->Build and run

將“構建和運行使用”和“運行測試使用”從 Gradle 更改為 IntelliJ IDEA,然后重新加載所有 Gradle 項目

構建並運行

重新加載 Gradle 項目

當您的機器上安裝了多個 JDK(在我的 Mac 中,安裝了 JDK8 和 JDK11)時,正確更新 IDE 編譯器版本后,此錯誤就會消失。 如果需要進行更改,您可能需要重新啟動 IDE。 在我的情況下 IntelliJ IDE,它在使緩存無效並重新啟動 IDE 后工作。

嘗試使用 Main.main() 行單擊父錯誤。 這應該向您顯示發生的實際錯誤。 對我來說,這是因為我沒有在 application.properties 文件中設置數據庫連接。 希望這可以幫助。

此錯誤可能是由於端口已在使用中。 關閉應用程序的其他運行實例后重試。

希望這有效!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM