服务器mq配置指定JDK+32位与64位jdk冲突解决
1.JDK冲突
服务器上在没有配置环境变量JAVA_HOME的情况下,在cmd查看 java -version 发现默认指向新安装的64位JDK
1.1原因:
因为PATH中含有:C:\ProgramData\Oracle\Java\javapath 这个配置。且放在了path的第一个,就算没加JAVA_HOME和path中没加入JAVA_HOME变量,也是会找到jdk路径。
并打开C:\ProgramData\Oracle\Java\javapath 下查看发现:安装64位的jdk会直接生成新的java.exe,javaw.exe,javaws.exe 三个文件 覆盖掉原来32位的。
1.2解决办法
在本地直接将64位的jdk安装包进行安装,生成出来的文件jdk 和 jre。
因为jdk中包含了jre.
(其实直接配置jre也可以,安全起见,还是放jdk到服务器上) 将jdk直接复制到了activemq目录下(感觉其实也可以放在其他文件下,更规范一些)
1.3检验
直接JAVA_HOME64,变量值填写打开jdk后的系统路径。 在cmd查看 java -version 还是指向原来的32位JDK.
2.activemq指向指定的64位jdk
2.1首先,注意事项
先停止服务再修改配置文件 ActiveMQ的服务是开着的,这时候修改配置文件,还修改了启动服务的名字(因为错以为ActiveMQ是另一个开启的),相当于是重新开启了一个服务,一旦之前的ActiveMQ服务关闭,就再也找不回来了。
非常愚蠢的错误哈哈哈哈,这个之前在大学里学过的,竟然忘记了噢。看来还是需要多回顾,记录
2.2 修改Java指向路径
# Java Application
# wrapper.java.command=java
wrapper.java.command=D:/tactivemq/jdk1.8.0_144/bin/java
2.3 然后保存,重启了服务,查看data下的wrapper.log
没有明显的报错,就可以啦
另一个协助的判断方法:服务启动起来,五秒钟内状态没有改变,就说明80%可能性是好的。但是一定要看log哈!
2.4 错误修改的名字哈哈哈 也记录下来把
# Title to use when running as a console
wrapper.console.title=ActiveMQ_64
。。。。。
# Name of the service
wrapper.ntservice.name=ActiveMQ_64
# Display name of the service
wrapper.ntservice.displayname=ActiveMQ_64
# Description of the service
wrapper.ntservice.description=ActiveMQ Broker_64
2.5 控制台访问,url
这个还没搞明白,url是在哪里定义的,等待更新
3.基本JDK配置
3.1JDK配置
系统变量JAVA_HOME 是写jdk所在路径的. PATH中%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 除去,JAVA_HOME,PATH中需要配置的。
系统变量classpath也要配置噢,然后变量值是 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 注意前面英文点号不能漏。
3.2配置多个jdk
直接多命名JAVA_HOME32或者JAVA_HOME64。然后再JAVA_HOME指定要用哪个。 也可以直接当前系统上直接拷贝 jdk文件夹,配置环境变量,再需要用的地方直接指明java地址。
3.3 其他小知识
在C盘下不允许打开cmd噢。在其他盘就可以。Power Shell 要比命令行新。 不要忘记 ,给Java配置系统变量只是为了它可以全局使用,即使不配置,在安装目录下也是可以使用的。
4.Windows对JDK默认版本切换问题
1.检查两个地方:
C:\Windows\System32和C:\ProgramData\Oracle\Java\javapath
下的java.exe,javaw.exe,javaws.exe到底是哪个版本的
2.注册表:运行regedit
找到HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft,修改Java Development Kit的CurrentVersion默认值。修改Java Runtime Environment的CurrentVersion默认版本
(删除新安装的jdk,注册表好像会跟着一起全部删除,包括原来的,待验证)
3.改一下JAVA_HOME
保存重新测试一下。
|