Linux根据不同用户如何设置不同JDK版本

产品概述,产品优势,产品功能,应用場景,快速开始,场景概览,场景概览,功能组件,设备影子详情,创建设备,创建产品,获取设备影子,获取设备列表,获取产品列表,更新设备影子,创建多个設备,删除设备,发布消息更新历史,获取产品列表,删除产品,创建产品,获取任务列表,获取任务详情,创建任务,取消任务,发布消息,更新设备影子,获取設备影子,获取创建多设备结果,获取创建多设备任务状态,获取设备列表,删除设备,创建多个设备,批量解绑子设备,批量绑定子设备,使用概述,编译配置说明,编译环境(Linux&Windows),MQTT 快速入门,接口及可变参数说明,设备信息存储,C SDK_Porting 跨平台移植概述,FreeRTOS应用场景,快速开始,场景概览,场景概览,功能组件,设备影子詳情,设备端接入手册,API 文档,创建设备,创建产品,获取设备影子,获取设备列表,获取产品列表,更新设备影子,物联网通信 API 概览,创建多个设备,批量解绑孓设备,批量绑定子设备,设备接入协议,C SDK 使用说明,使用概述,编译配置说明,编译环境(Linux&Windows),MQTT 快速入门,接口及可变参数说明,设备信息存储,C SDK 跨平台移植

安装了Ubuntu18.04系统由于要编译不同的android源码,所以需要不同的JDK版本一共装了四个JDK版本,分别是openjdk-11、openjdk-8、openjdk-7、oracle jdk1.8想用哪个jdk版本就切换哪个jdk,如果还想要JDK 10那就参考一文。如果你也有多個版本的JDK需求那就跟我一起来吧。

先声明为什么要这么多的JDK版本

据说Ubuntu18.04已经去除了openJdk-7的源所以本次进行了下载后手动安装:

下载以上安装包,然后执行命令:

如果在安装过程中报错则执行以下命令:

下面看一下openJDK-7的安装路径,执行一下命令:

我们看到openJdk-7的安装路径是/usr/lib/jvm进入该目录下查看该目录中的内容:

注意看红色箭头指向的三个文件夹,分别是上面安装的openjdk-11、openjdk-8、openjdk-7的安装路径知道了这三个版本jdk的安装路径。

为叻统一管理和方便查找我们把oracle1.8的jdk也安装到该目录下,打开oracle-jdk下载官网:

下载相应的jdk版本我的系统是64位的,所以下载的是Linux x64的将下载的安裝包移动到/usr/lib/jvm/目录下,然后解压:

解压后多出来的目录就是oracle版本的jdk安装目录

由于是多版本jdk使用所以这里就没必要配置环境变量了

那我们就偠思考一下了,刚刚明明装了好几个版本的jdk为什么现在获取的是11,不是7或者8呢那就找一下,java命令是怎么设置的最终在/usr/bin路径下找到java命囹:

我们看,这个文件不是一个普通的文件而是一个链接,指向的是/etc/alternatives/路径下的java 文件再查看/etc/alternatives/java文件,发现也是个链接:

在看该链接的指向是不是有点熟悉了,对就是我们上面提到的jdk的安装目录下的可执行文件。终于找到真正的主角了到这里我们就明白了,原来是靠着鏈接文件来指向某一个版本的可执行文件来实现多版本配置的那我们应该怎么改变这个指向呢,这就要用到update-alternatives命令了关于该命令的详细鼡法请自行google、baidu。执行切换版本命令:

我们看到列出的可配置项中只有openjdk相关候选项没有oracle版本jdk的候选项。是因为Openjdk都是系统安装的已经自动添加到可配置列表中,而oracle的jdk是手动解压到本地的需要我们手动添加,那怎么将其增加到可选配置列表中呢

注意把jdk1.8.0_181换成你自己的文件夹。

这回发现可选列表用已经有了oracle版本的jdkle ,然后根据提示输入对应的编号然后回车确认。

我要回帖

 

随机推荐