今天遇到了一個開發環境出現的jdk版本不兼容的問題,最近在研究javaFx插件功能要求java最低版本11,所以我直接下載了一個16的jdk,但是我生產環境的項目都是使用的java8,所以導致編譯不通過出現了一個問題,所以記錄一下這個問題
開發工具:idea2021版
操作系統:mac
報錯信息:
Fatal error compiling: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x2aa7399c) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x2aa7399c
使用idea工具帶的maven編譯是完全不會報錯並貼編譯可以通過
不知道idea2021版本智能了,還是這是bug
lombok版本我使用的是:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
問題結局:將java編譯環境更改成jdk1.8的環境lombok就可以兼容並編譯通過,使用jdk更高版本的話會出現編譯問題,idea工具的maven編譯和通過Terminal編譯過的環境可能會不一樣,idea可以根據你電腦裝了多個版本的jdk來使用不同的jdk版本進行編譯,而Terminal控制台使用maven進行編譯是通過系統的環境變量配置的jdk版本進行編譯,所以要解決這個問題就是將系統的環境變量修改成jdk1.8,並在命令行查看java版本java -version 來確保系統環境變量是否正確