JDK17与Hbase client的兼容性问题

发布时间 2023-06-17 19:19:02作者: 菩提树下的杨过

最近有1个项目升级到JDK17,里面用到了hbase-client(版本:以1.2.0-cdh5.7.1为基础,公司的大数据同学内部做了一些二次开发 ),启动时发现一直连不上集群,直接报错了,上hbase 官网看了下:

别说JDK 17了,连JDK11都支持不完善,难道把JDK版本又降回去?有点不甘心,又搜索了一些资料,找到了几篇文档:

https://issues.apache.org/jira/browse/HBASE-26046

https://issues.apache.org/jira/browse/HBASE-22972

https://toutiao.io/posts/e02mgpc/preview

发现有人在高版本JDK上运行成功了,按第1篇文档的做法,先尝试了下:

--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED

加上这几个,当然因为我的项目里,还有一些其它功能,要打开的包不止这几个,最终是这样的:

--add-opens=java.base/java.lang=ALL-UNNAMED 
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED 
--add-opens=java.base/sun.reflect.annotation=ALL-UNNAMED 
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED 
--add-opens=java.base/java.math=ALL-UNNAMED 
--add-opens=java.base/java.util=ALL-UNNAMED 
--add-opens=java.base/sun.util.calendar=ALL-UNNAMED 
--add-opens=java.base/java.io=ALL-UNNAMED 
--add-opens=java.base/java.net=ALL-UNNAMED 
--add-opens=java.base/java.nio=ALL-UNNAMED 
--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED 
--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 

居然跑起来了,呵呵