行业新闻

RocketMQ对于过高JDK版本问题的解决(Windows版本)

2024-04-01 阅读次数:

1.需求介绍

RocketMQ依赖的JDK版本是1.8,而我们本机电脑里面的JDK版本是17,如果强行将RocketMQ和JDK17匹配,那么只会运行失败。

所以对于这个问题的解决方法是再下载一个JDK1.8,如下图,我在本机里下载了JDK17和JDK1.8。

 我在自己电脑里面的JAVA_HOME设置成JDK17的安装目录,而RocketMQ运行时会从JAVA_HOME中指定的JDK来建立JVM,所以我们需要手动指定RocketMQ中配置文件的JAVA_HOME,即JDK1.8的安装目录。

2.修改runserver.cmd

进入RocketMQ安装目录下的bin目录中,找到runserver.cmd,建议使用VSCode打开这个文件,在最上面添加上下面的代码:

set JAVA_HOME=D:\JDK\JDK8
set PATH=%JAVA_HOME%\bin;%PATH%

 如下图:

保存后,再打开cmd,输入下面代码:

start mqnamesrv.cmd

 发现运行成功了。

3.修改runbroker.cmd

同样在bin目录下,找到runbroker.cmd,使用VSCode打开这个文件,在最上面添加上下面的代码:

set JAVA_HOME=D:\JDK\JDK8
set PATH=%JAVA_HOME%\bin;%PATH%

如下图:

 保存后,再打开cmd,输入下面代码:

start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true

发现运行成功了。

4.修改mqshutdown.cmd

修改上面两条后,启动是能成功启动了,但是我们该如何关闭。此时我们还需要修改bin目录下的mqshutdown.cmd。

修改的操作跟上面的一样,关闭时,我们需要在cmd中输入:

mqshutdown broker

mqshutdown namesrv

 然后RocketMQ就被我们成功地停止运行了。

4.不足和拓展

本篇文章是针对windows里面下载的RocketMQ问题的解决,如果是在Linux中的话,大家请修改runserver.sh和runbroker.sh,添加的代码也发生了改变,如下:

export JAVA_HOME=/path/to/your/JDK1.8
export PATH=$JAVA_HOME/bin:$PATH

将/path/to/your/JDK1.8修改成自己的JDK安装目录路径。

按照我的这种方法,每次我们下载RocketMQ,我们就需要修改一次,这是十分麻烦的。如果有一个脚本能自动帮我们添加就好了。