一、報錯內(nèi)容
在 install Maven項目時,控制臺出現(xiàn)警告如下:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.flink.api.java.ClosureCleaner (file:/D:/Users/xxx/.m2/repository/org/apache/flink/flink-core/1.12.0/flink-core-1.12.0.jar) to field java.util.Properties.serialVersionUID
WARNING: Please consider reporting this to the maintainers of org.apache.flink.api.java.ClosureCleaner
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
二、報錯說明
字面意思說的是發(fā)生的了一個非法的反射訪問操作,在JDK 9之前 ,Java允許通過反射機制訪問所有的成員,這些成員的類型包括私有(private),公共(public),包(< package >)和受保護(protected)。
JDK9新增了模塊系統(tǒng)之后, 對反射行為做出了一定的限制。即對于非公有的成員、成員方法和構造方法,模塊不能通過反射直接去訪問,但是JDK9提供了一個可選的修飾符open來聲明一個開放模塊,可以從一個開放模塊中導出所有的包,以便在運行時對該模塊中的所有包中的所有類型進行深層反射來訪問。
在JDK9中,Java運行時由一個一個的模塊組成?;谂f版本JDK開發(fā)的第三方jar包在遷移到JDK9時無法被轉換成為模塊,但是可以將其放在類路徑下,被加載成為一個unnamed標識的模塊,如果該模塊存在被使用的需求,則會被放置在模塊路徑上,被加載后用作自動模塊,進而被系統(tǒng)依賴使用。
三、報錯解決
將JDK切換成舊版本的即可。
(我這里使用的是JDK11出現(xiàn)了這個問題,將JDK11降級成JDK8之后警告就消失了)
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
四、參考文章
【異?!緼n illegal reflective access operation has occurred警告
【項目實戰(zhàn)】Java9的新特性模塊化(Module)文章來源:http://www.zghlxwxcb.cn/news/detail-699825.html
An illegal reflective access operation has occurred警告文章來源地址http://www.zghlxwxcb.cn/news/detail-699825.html
到了這里,關于【異?!縄DEA提示An illegal reflective access operation has occurred警告的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!