前言
作为开发人员,安装并使用jdk是基本功,相信也难不倒大家的,但是如果说同一台电脑同时安装2个版本的jdk该如何实现呢。最近工作中就遇到了这个问题,本身我们开发的项目是使用64位jdk8,但是由于我开发蓝牙充值宝模块时,底层的卡库服务是需要独立运行的并且需要使用jdk32位。这就有点犯难了,因为2个项目都必须同时启动起来,网上找了一些文章参考了一下感觉解决的都不完美!
网传办法
网络上的办法都是,先安装好一个版本的jdk后,并配置好该jdk的环境变量,然后再安装另一个版本的jdk并进行环境变量配置。然后就会发现一个问题,JAVA_HOME的变量可以进行区分开,但是CLASSPATH的路径只有一个啊,瞬间懵逼,开始时我的操作是,使用jdk64位的时候就将JAVA_HOME地址换成64位的,使用32位就换成32的。这种方案也只能解决2个项目分开运行时的问题,并且这种方案还有个问题就是一些中间件如果需要用到java环境的会默认的去寻找最后安装的jdk的路径,比如我最后安装的32位的jdk,seata就会出现启动失败的问题。 jdk8的32位下载地址: 链接:https://pan.baidu.com/s/189r3G89cPUxnURM6T1Sn7Q 提取码:yyds jdk8的64位下载地址: 链接:https://pan.baidu.com/s/1cJ8EXbc79IRJJ6HQLjpLjg 提取码:yyds
解决办法
一、先安装第一个jdk(64位)并配置好环境变量
步骤(过于简单。。省略)
如上图所示:64位我安装的是jdk1.8.0_281版本 此时检查jdk版本应该是:jdk1.8.0_281
二、安装第二个jdk(32位)不进行环境变量配置
jdk32位我安装的是:jdk1.8.0_291版本
此时我们检查我们的jdk版本应该是:jdk1.8.0_291版本
三、删除后安装的jdk对应的文件
对应文件地址为:C:\Program Files (x86)\Common Files\Oracle文件夹下目录,若是不放心可以先不删除,将文件内容打成压缩包,然后删除文件夹。删除后我们回发现我们的当前的jdk版本又变回最之前安装的jdk1.8.0_281版本了,如果恢复这个文件夹则又变成jdk1.8.0_291版本,是不是很神奇呢。猜测应该是这个地方的优先级比环境变量的优先级更高,因此如果这里没了那么就采用环境变量中的jdk配置。
四、不同项目引入不同的jdk版本即可
当前项目采用64的jdk: 卡库项目采用32位jdk: 至此,完美解决问题!
|