添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

导言:本文章旨在解决3个问题

  1. ActiveMQ启动无报错但访问失败问题;
  2. jdk8与17在windows同时安装时,如何丝滑切换自己所需的jdk版本;
  3. 在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 问题排查

  1. 查看8161端口是否开放:结果为已开放

    firewall-cmd --list-all  //查看开放端口号
    

    在这里插入图片描述

  2. 测试网络是否能ping成功:结果为能ping成功

    ping www.baidu.com  //查看网络是否连通
    

    在这里插入图片描述

  3. 查看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服务才对。
    1. 什么时候偷星换月:默默修改为jdk17

      原来是昨天新建SpringBoot项目不能选择java8,只能选择java17或21。在这期间下载了jdk17以完成SpringBoot项目的创建。(或许下载了高版本的jdk17时,默认修改了系统jdk的classpath路径)

      (注:由于在2023年11月27日更新后,spring.io默认不再支持创建jdk1.8的项目。若想创建SpringBoot项目时选择jdk8,可按 “3.在IDEA创建SpringBoot项目时如何选择jdk8” 操作执行)
      在这里插入图片描述

    2. 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 为例

    1. 首先新建一个 jdk 文件夹,用来存放不同版本的jdk文件。高版本的jdk最好安装zip版,只需解压配置即可。(如果是exe版本,会导致在配置低版本jdk环境变量时可能不起作用,这个可能是因为在安装jdk某个版本的时候自动将java.exe、javaw.exe、javaws.exe三个文件放到了指定的优先级比较高的系统环境路径下,导致我们的配置失效。)
      在这里插入图片描述

    2. 选择此电脑:右键→属性→高级系统设置→环境变量→系统变量,新建或编辑如下4个系统变量

      CLASSPATH   .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
      

      在这里插入图片描述

    3. 配置下环境,因为先安装了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等内容) 进行删除!(如下图,本人已删除过,不再复现此问题情境)
      在这里插入图片描述

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

      • 使用jdk8
        在这里插入图片描述

      • 使用jdk17
        在这里插入图片描述

    3.在IDEA创建SpringBoot项目时如何选择jdk8

    问题导入:由于在2023年11月27日更新后,spring.io默认不再支持创建jdk1.8的项目(算是强制性要求使用高版本的jdk)如下图:
    在这里插入图片描述

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

    https://start.aliyun.com/
    				
    在虚拟机的linux系统中解压activemq安装包,执行./activemq start成功启动activemq,使用浏览器访问虚拟机8161失败。 防火墙是关闭的 虚拟机跟windw是通的 firewall-cmd --zone=public--add-port=8161/tcp --permanent
    Springboot 学习笔记Springboot简介什么是微服务?ThymeleafDuridSpringboot整合mybatisSpringSecurity安全Shiroswagger定任务springboot 整合分布式 dubbo+ zookeeper+ springbootDubboRPC(两大核心:通讯,序列化)Zookeeper总结 spring官网 springboot官网 spring-security版本下载 狂神官网学习 也可以搜索B站 (狂神说) Springboot
    1.了解 SpringBoot 人们把 Spring Boot称为搭建程序的脚手架。其最主要作用就是帮我们快速的构建庞大的spring项目,并且尽可能的减少一切xml配置,做到开箱即用,迅速上手,让我们关注于业务而非配置。 java一直被人诟病的一点就是臃肿、麻烦。当我们还在辛苦的搭建项目,可能 Python程序员已经把功能写好了,究其原因主要是两点: 复杂的配置 项目各种配置其实是开发的...
    解决思路: 1.确保activemq启动成功. ps -ef | grepactivemq 如果没有启动,可以在activemq目录的data下查看启动日志,找到问题原因,针对性解决 2.确保防火墙已经关闭,或者对应端口已经开放(云服务器) 自己的虚拟机 : systemctl status firewalld 如果 没有关闭 systemctl status firewalldsystemctl disable...
    在一个linux上配置了环境变量的JAVA_HOME是jdk1.6的, 而最新的activemq-5.14.3  运行/bin/activemq报错不支持这个版本的jdk,............version 51 发现bin路径下有一个env文件。发现里面可以设置JAVA_HOME 设置成功后如下 # Specify the location of you
    【MySQL错误: The user specified as a definer (‘mysql.infoschema‘@‘localhost‘) does not exist】
    【MySQL错误: The user specified as a definer (‘mysql.infoschema‘@‘localhost‘) does not exist】 debug到老: #进库看了一下,有没有这张表,没有就创建 CREATE TABLE `role_edges` ( `FROM_HOST` char(255) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL DEFAULT '', `FROM_USER` char(32) COLLATE utf8_bin NOT NULL DEFAULT '', `TO_HOST` char(255) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL DEFAULT '', `TO_USER` char(32) COLLATE utf8_bin NOT NULL DEFAULT '', `WITH_ADMIN_OPTION` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N', PRIMARY KEY (`FROM_HOST`,`FROM_USER`,`TO_HOST`,`TO_USER`) ) /*!50100 TABLESPACE `mysql` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin STATS_PERSISTENT=0 ROW_FORMAT=DYNAMIC COMMENT='Role hierarchy and role grants'; #我这个是8.0.27版本的,从其他相同的环境找了个建表语句,创建这个表后就能创建用户了 【ActiveMQ启动无报错但访问失败 __ jdk8与17在windows同时安装并切换 __ 在IDEA创建SpringBoot项目时如何选择jdk8】 CSDN-Ada助手: 恭喜您写了第7篇博客!标题看起来非常专业,对于ActiveMQ启动问题和jdk版本切换的经验分享对读者们非常有帮助。接下来,我建议您可以考虑分享一些在实际项目中遇到的挑战以及解决方案,或者是一些新技术的探索和应用。希望您能继续保持创作,期待您更多的精彩内容! 【MySQL错误: The user specified as a definer (‘mysql.infoschema‘@‘localhost‘) does not exist】 【curl: (52) Empty reply from server】 【MySQL错误: The user specified as a definer (‘mysql.infoschema‘@‘localhost‘) does not exist】 【curl: (52) Empty reply from server】