导言:本文章旨在解决3个问题
- ActiveMQ启动无报错但访问失败问题;
- jdk8与17在windows同时安装时,如何丝滑切换自己所需的jdk版本;
- 在IDEA创建SpringBoot项目时如何选择jdk8。
1.ActiveMQ启动无报错但访问失败
1.1 问题导入
本人所安装的是jdk8版本,ActiveMQ5.16.6版本,本来一切都是能正常启动运行。
某天却在centos7下启动ActiveMQ时,发现启动无报错但是访问失败
-
启动时的输出信息:无报错
[root@localhost]/opt/apache-activemq-5.16.6/bin# ./activemq start INFO: Loading '/opt/apache-activemq-5.16.6//bin/env' INFO: Using java '/usr/bin/java' INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details INFO: pidfile created : '/opt/apache-activemq-5.16.6//data/activemq.pid' (pid '2635') -
访问时的结果:访问失败

1.2 问题排查
-
查看8161端口是否开放:结果为已开放
firewall-cmd --list-all //查看开放端口号
-
测试网络是否能ping成功:结果为能ping成功
ping www.baidu.com //查看网络是否连通
-
查看ActiveMQ是否启动
ps -ef|grep activemq|grep -v grep //方式一:通过activemq名称查看ActiveMQ服务是否启动 netstat -anp|grep 61616 //方式二:通过端口号查看ActiveMQ服务是否启动
结论:ActiveMQ服务没有成功启动,导致访问失败
1.3 命中并解决问题
- ActiveMQ启动无报错,但访问失败。问题大概率是因为版本的不匹配,因为ActiveMQ对JDK版本是有严格要求的。
ActiveMQ官网下载地址:https://activemq.apache.org/activemq-5016006-release

-
查看Windows系统的JDK版本:结果为JDK17版本

-
解决办法:安装对应的ActiveMQ版本,或者改用对应的jdk版本。(个人支持修改对应的jdk版本,可直接按 “2. 如何丝滑地转换jdk版本” 的操作步骤进行修改,即可成功启动ActiveMQ服务)
1.4 新的疑问
- 我安装的明明是JDK8,为什么现在却是JDK17,是什么时候做出了改变?
- ActiveMQ 5.16.6版本支持的是jdk8级以上的版本,就算是JDK17也应该能够成功启动ActiveMQ服务才对。
-
什么时候偷星换月:默默修改为jdk17
原来是昨天新建SpringBoot项目不能选择java8,只能选择java17或21。在这期间下载了jdk17以完成SpringBoot项目的创建。(或许下载了高版本的jdk17时,默认修改了系统jdk的classpath路径)
(注:由于在2023年11月27日更新后,
spring.io默认不再支持创建jdk1.8的项目。若想创建SpringBoot项目时选择jdk8,可按 “3.在IDEA创建SpringBoot项目时如何选择jdk8” 操作执行)

-
ActiveMQ 5.16.6版本搭配JDK17为什么不能启动ActiveMQ服务?
个人觉得:应该是系统同时安装jdk8和jdk17时,系统的classpath路径被修改,启动ActiveMQ 5.16.6版本的ActiveMQ服务时,无法判断选择哪个JDk版本而导致启动失败。以上仅是个人猜想,未做详细研究,但是按照 “2. 如何丝滑地转换jdk版本” 操作执行后,无论使用jdk8还是jdk17,都能成功启动ActiveMQ服务。
2. 如何丝滑地转换jdk版本
思路:通过修改JDK环境变量中的JAVA_HOME,将值改成相应的JDK安装目录,来达到在同一台电脑中安装使用不同jdk版本的效果。
操作步骤:以 jdk8 和 jdk17 为例
-
首先新建一个 jdk 文件夹,用来存放不同版本的jdk文件。高版本的jdk最好安装zip版,只需解压配置即可。(如果是exe版本,会导致在配置低版本jdk环境变量时可能不起作用,这个可能是因为在安装jdk某个版本的时候自动将
java.exe、javaw.exe、javaws.exe三个文件放到了指定的优先级比较高的系统环境路径下,导致我们的配置失效。)

-
选择此电脑:右键→属性→高级系统设置→环境变量→系统变量,新建或编辑如下4个系统变量
CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
-
配置下环境,因为先安装了jdk8,再安装jdk17,安装后在path下发现多了以下两个路径
C:\Program Files\Common Files\Oracle\Java\javapath C:\Program Files (x86)\Common Files\Oracle\Java\javapath
方法一:将以上的两个环境变量删除即可!
方法二:或者可以到对应的文件路径,将javapath文件夹的所有内容 (
java.exe、javaw.exe、javaws.exe等内容) 进行删除!(如下图,本人已删除过,不再复现此问题情境)

-
通过修改系统环境变量的
JAVA_HOME值,以达到切换使用jdk的效果。-
使用jdk8

-
使用jdk17

-
3.在IDEA创建SpringBoot项目时如何选择jdk8
问题导入:由于在2023年11月27日更新后,spring.io默认不再支持创建jdk1.8的项目(算是强制性要求使用高版本的jdk)如下图:

解决方法:替换Server URL,推荐使用阿里的服务器url来创建项目,地址如下:
https://start.aliyun.com/



3285

被折叠的 条评论
为什么被折叠?



