我是Java和Groovy的新手。我已经在我的Windows 10笔记本电脑(64位)上安装了Groovy 3. 0,当试图运行Groovy时,得到以下警告:
>groovy -v
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/C:/groovy-3.0.0-alpha-1/lib/groovy-3.0.0-alpha-1.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
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
Groovy Version: 3.0.0-alpha-1 JVM: 9.0.1 Vendor: Oracle Corporation OS: Windows 10
Java版本为:
java --version
java 9.0.1
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
任何有助于解决此问题的帮助。
8条答案
按热度按时间dtcbnfnu1#
要禁用警告,您可以将
--add-opens
传递给JVM,请参阅此处的详细信息。不幸的是,Groovy需要打开 * 大量 * 模块/包,请参阅此(当前恢复的)commit(源代码)。刚刚用AdoptOpenJDK 11测试了这些。gg0vcinb2#
这对我来说不仅仅是一个“警告”:我无法让Groovy脚本在当前的JVM 9(更不用说10)上运行(在macOS上)。解决办法(直到兼容版本的Groovy可用)是安装jenv和早期版本的Java,这样您就可以在需要时切换。
drnojrws3#
虽然我的环境是Linux,但在Grails环境中设置Groovy花费了几天时间之后,我觉得我知道了答案:我现在使用JDK 8。我在摆弄JDK 9,我认为它太落后了,所以我尝试了JDK 11,这使事情更糟,我遇到了真正的崩溃。看起来Groovy / Grails在Java版本兼容性方面严重落后。
一旦新的Groovy将被发布(据说是今年年底),那么更新的JDK也可以使用。
wgxvkvu94#
将
JAVA_HOME
设置为版本8 JRE为我解决了这个问题:nxagd54h5#
使用Java8,但是,如果java版本必须是9或〉,您也需要更新groovy版本。
我运行的是groovy 2.2.1,它只能在java版本8之前工作
x0fgdtte6#
添加groovy版本到您pom:
tpxzln5u7#
在我的例子中,这是因为我使用的是带有groovy的JUNIT5,但我发现最新支持的是JUNIT4.13
fjaof16o8#
我在Linux Mint 20.1上使用openjdk 11.0.15 2022-04-19和Groovy 2.4.17时遇到了这个问题
为了修复它,我安装了Jabba https://github.com/shyiko/jabba
首先,您需要设置要安装的Jabba版本:
然后运行curl命令:
第一个
请观看此视频,了解Jabba的功能:
https://www.youtube.com/watch?v=y2kYVCCeIMo