运行flink-runtime_2.11_1.11.2报错:java.base does not “opens java.lang“ to unnamed module @1810399e

环境:

windows 

IntelliJ IDEA 2023.1.1 (Ultimate Edition)

jdk 17

flink-runtime_2.11_1.11.2

具体报错信息如下:

Exception in thread "main" java.lang.reflect.InaccessibleObjectException: Unable to make field private final byte[] java.lang.String.value accessible: module java.base does not "opens java.lang" to unnamed module @1810399e
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
	at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
	at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
	at org.apache.flink.api.java.ClosureCleaner.clean(ClosureCleaner.java:104)
	at org.apache.flink.api.java.ClosureCleaner.clean(ClosureCleaner.java:126)
	at org.apache.flink.api.java.ClosureCleaner.clean(ClosureCleaner.java:71)
	at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.clean(StreamExecutionEnvironment.java:1899)
	at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.addSource(StreamExecutionEnvironment.java:1612)
	at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.addSource(StreamExecutionEnvironment.java:1569)
	at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.socketTextStream(StreamExecutionEnvironment.java:1373)
	at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.socketTextStream(StreamExecutionEnvironment.java:1413)
	at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.socketTextStream(StreamExecutionEnvironment.java:1430)
	at org.apache.flink.streaming.api.scala.StreamExecutionEnvironment.socketTextStream(StreamExecutionEnvironment.scala:616)
	at OrderedStreamWaterMark$.main(OrderedStreamWaterMark.scala:25)
	at OrderedStreamWaterMark.main(OrderedStreamWaterMark.scala)

参考百度AI信息:

这个错误信息表明在Java 9及以上版本中,一个模块(在这个例子中是未命名模块,由@643b1d11标识)尝试打开java.lang包,这是java.base模块的一部分,但这种操作是被禁止的,因为java.lang是一个核心模块,不应该被打开给其他模块使用。

注意这里错误信息中的关键字【opens 】

对应的解决方案还是添加相应的VM启动参数

--add-opens java.base/java.lang=ALL-UNNAMED

这里稍微总结下JDK高版本中的unnamed问题

常见的unamed问题通常有两种:opens 和exports

exports问题参考:

运行flink-runtime_2.11_1.11.2报错:java.base does not export sun.net.util to unnamed module @0x1a407d53_java.base dont export sun.security.util-CSDN博客

针对不同的问题,添加相应的VM启动参数即可。

常用的参数如下:

--add-exports=java.base/sun.net.util=ALL-UNNAMED
--add-exports=java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/sun.net.util=ALL-UNNAMED

根据需要添加即可。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值