Package 'javafx.stage' is declared in module 'javafx.graphics', which is not in the module graph

使用itellij idea寫javafx程序時,剛開始挺順利的,功能也實現了。後來過了一段時間重新打開idea看項目時忽然發現一大片紅色錯誤提示。我以爲是少jar包導致的,就導入jar包,專門創建了一個maven工程重構項目來解決jar包問題,然而並沒有說什麼卵用,還是一大片紅色。把光標放到紅色代碼上就提示如標題所示的錯誤信息。也是很鬱悶。

直接運行一下項目,發現雖然報錯,但是項目能正常運行,功能都能實現。很奇特。

通過查資料瞭解到javafx相關的依賴是java jdk自帶的,不需要額外引用任何jar包。那麼問題就應該出現在idea本身的某項配置上。

仔細回想之前都做了哪些重要操作可能導致這個錯誤。逐個查看、修改,看效果怎麼樣。

錯誤提示中提到了module這個單詞,結合之前的操作,嚴重懷疑是下圖所示的地方配置有誤,當查看到如下圖所示的地方時奇蹟出現了:

當初使用lambda表達式的時候因爲默認language level是5 ,不支持lambda表達式,所以把它改成了10(我中的jdk版本是10),本以爲越高越好,正好配套了,並且當時該了之後沒注意到報錯,直接運行項目功能可以實現就直接完事了。

現在把language level從10改成8(從8起,開始支持lambda表達式),奇蹟出現了,一大片紅色報警突然全部消失,哈哈,好高興!

至於爲什麼非8不可,那就不得而知了,idea自身的特殊配置,也不好深究。問題完美解決就行了,別的管他呢。

 

總結:這個錯誤是某些東西不匹配造成的,結合報錯信息,加上一點靈感,問題得以解決。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章