最近在搭建RocketMQ5.0,然后按照官方流程:https://rocketmq.apache.org/zh/docs/quickStart/02quickstart
先啟動namesrv完,再啟動broker的時候遇到以下錯誤。
java.lang.IllegalAccessError: class org.apache.rocketmq.common.UtilAll (in unnamed module @0x4bde3f8a) cannot access class sun.nio.ch.DirectBuffer (in module java.base) because module java.base does not export sun.nio.ch to unnamed module @0x4bde3f8a
at org.apache.rocketmq.common.UtilAll.viewed(UtilAll.java:720)
at org.apache.rocketmq.common.UtilAll.cleanBuffer(UtilAll.java:684)
at org.apache.rocketmq.store.logfile.DefaultMappedFile.cleanup(DefaultMappedFile.java:470)
at org.apache.rocketmq.store.ReferenceResource.release(ReferenceResource.java:63)
at org.apache.rocketmq.store.ReferenceResource.shutdown(ReferenceResource.java:47)
at org.apache.rocketmq.store.logfile.DefaultMappedFile.destroy(DefaultMappedFile.java:481)
at org.apache.rocketmq.store.index.IndexFile.destroy(IndexFile.java:97)
at org.apache.rocketmq.store.index.IndexService.load(IndexService.java:72)
at org.apache.rocketmq.store.DefaultMessageStore.load(DefaultMessageStore.java:287)
at org.apache.rocketmq.broker.BrokerController.initialize(BrokerController.java:754)
at org.apache.rocketmq.broker.BrokerStartup.createBrokerController(BrokerStartup.java:224)
at org.apache.rocketmq.proxy.ProxyStartup.createBrokerController(ProxyStartup.java:212)
at org.apache.rocketmq.proxy.ProxyStartup.createMessagingProcessor(ProxyStartup.java:171)
at org.apache.rocketmq.proxy.ProxyStartup.main(ProxyStartup.java:79)
之前大家如果搭建過老版本的RocketMQ基本都遇到過,因為使用jdk版本高的原因,jdk1.8以上涉及到導包的問題,所以RocketMQ啟動命令不兼容。
兩個解決路徑:
(1)使用jdk1.8 (不推薦,現(xiàn)在jdk都到多少版本了)
(2)修改broker啟動命令,強行導包。
因為RocketMQ 5.0的bin/mqbroker啟動命令指向的是runserver.sh,所以需要修改runserver.sh,在最后一行修改為以下內容。(看其他人的帖子,老版本的RocketMQ是runBroker.sh?我沒安裝過,大伙如果方便可以告訴我下是嗎?)
文件runsever.sh

$JAVA ${JAVA_OPT} --add-exports=java.base/sun.nio.ch=ALL-UNNAMED $@文章來源:http://www.zghlxwxcb.cn/news/detail-653419.html
標記橙色就是新增的。修改保存后,啟動broker不再報錯。文章來源地址http://www.zghlxwxcb.cn/news/detail-653419.html
到了這里,關于rocketMQ5.0啟動broker報錯:module java.base does not export sun.nio.ch to unnamed module的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!