我在 Eclipse 4.21.0(見下文)中創建了最簡單的模塊化專案,有兩個源檔案夾和一個包。兩種main方法都只列印“Hello”。
- 如果我右鍵單擊
Main1并Run as Java Application,則一切正常。 - 如果我右鍵單擊
Main2并執行相同的操作,我會得到:
Error: Could not find or load main class p1.Main2
Caused by: java.lang.ClassNotFoundException: p1.Main2
如果我檢查生成的兩個運行配置(Main1和Main2),它們(表面上)是相同的,除了 Main 類的名稱。如果我進入Main1啟動配置并將主類更改為Main2,現在它可以作業了。因此 Eclipse 為頂級源檔案夾生成了一個有效的啟動配置,并為第二個源檔案夾生成了一個損壞的啟動配置。
為什么會這樣,我如何為其他源檔案夾生成有效的啟動配置?

細節
- 我知道這不是非模塊化專案的問題,但我對解決模塊化專案的案例很感興趣。
- 即使我在啟動前洗掉/重繪 啟動配置時也會發生這種情況,并且與我運行的順序
Main1和Main2. - 無論我有一個輸出檔案夾還是每個源檔案夾一個,都會發生這種情況。
uj5u.com熱心網友回復:
事實證明,這是2020 年 11 月 23 日針對 4.17 版報告的已知錯誤:如果 module-info.java 在附加源目錄中,則無法啟動類。
解決方法
如原始錯誤報告中所述,嘗試修改損壞的配置并不能解決問題:
如果我編輯啟動配置(即使我只是更改名稱),我會在啟動時收到以下錯誤:
Error occurred during initialization of boot layer...
但是,可以為主源檔案夾(所在module-info.java位置)創建有效的配置,并修改該配置以使用附加源檔案夾中的主類,這將正常運行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/346613.html
