linux使用update-alternatives切换java版本

linux使用update-alternatives切换java版本

关于update-alternatives命令的使用,请见:

http://www.jb51.net/article/112372.htm

之前的文章说明了使用文件夹管理来代替原来的当个命令配置的方式,不过这个是属于个人使用的方式,并不是规范的通用的方式。

按照默认的方式,每一个软件包对应的命令都是分别设置的,这样的好处是,可以不同的命令使用不同的版本。如java使用1.9,javap使用1.8

还是以java为例,它默认配置了"java/javac/appletviewer/jconsole"。

在新安装了一个版本的时候,为了保留旧的版本,而让新版本生效,首先要做的是看一下旧版本的优先级是多少,如:

sudo update-alternatives --display javac

javac - auto mode
 link best version is /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
 link currently points to /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
 link javac is /usr/bin/javac
 slave javac.1.gz is /usr/share/man/man1/javac.1.gz
/usr/lib/jvm/java-8-openjdk-amd64/bin/javac - priority 1081

这里我们看到目前的java版本是java-8,其优先级是1081。

那么我要们安装java-9,而让他自动生效,那么我们就要让他的优先级大于1081,如设置为3000。

明确了这个前提,那就开始安装java-9。

sudo apt-get install -yqq openjdk-9-jdk

安装完后,会提示安装到哪里去了,ubuntu默认是:"/usr/lib/jvm/java-9-openjdk-amd64"

那么,我测试时发现安装程序只设置了appletviewer和jconsole,没关系我并不关心这个,下面自己自己设置要使用的命令和优先级:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-9-openjdk-amd64/bin/java 3000

sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-9-openjdk-amd64/bin/javac 3000

sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java-9-openjdk-amd64/bin/jar 3000

sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/java-9-openjdk-amd64/bin/javah 3000

sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/java-9-openjdk-amd64/bin/javap 3000

sudo update-alternatives --install /usr/bin/jshell jshell /usr/lib/jvm/java-9-openjdk-amd64/bin/jshell 3000

sudo update-alternatives --install /usr/bin/jconsole jconsole /usr/lib/jvm/java-9-openjdk-amd64/bin/jconsole 3000

#如果还需要其他命令,自行添加,如:jmap/jps

接下来,检查一下:

$ sudo update-alternatives --display javac
javac - auto mode
 link best version is /usr/lib/jvm/java-9-openjdk-amd64/bin/javac
 link currently points to /usr/lib/jvm/java-9-openjdk-amd64/bin/javac
 link javac is /usr/bin/javac
 slave javac.1.gz is /usr/share/man/man1/javac.1.gz
/usr/lib/jvm/java-8-openjdk-amd64/bin/javac - priority 1081
 slave javac.1.gz: /usr/lib/jvm/java-8-openjdk-amd64/man/man1/javac.1.gz
/usr/lib/jvm/java-9-openjdk-amd64/bin/javac - priority 3000

$ java -version
openjdk version "9-internal"
OpenJDK Runtime Environment (build 9-internal+0-2016-04-14-195246.buildd.src)
OpenJDK 64-Bit Server VM (build 9-internal+0-2016-04-14-195246.buildd.src, mixed mode)

可以看到生效了。

这有一个前提是,每一个命令都是auto 模式,这样才会自动选择优先级高的。为了确保,可以不用管现在的状态,直接设置一遍这些命令为auto模式。

sudo update-alternatives --auto java
sudo update-alternatives --auto javac
sudo update-alternatives --auto javap
sudo update-alternatives --auto javah
sudo update-alternatives --auto jconsole
sudo update-alternatives --auto jshell

好了,可以自由的使用java-9了。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • linux软件版本管理命令update-alternatives使用详解

    linux软件版本管理命令update-alternatives使用详解 update-alternatives 命令用于处理linux系统中软件版本的切换,在各个linux发行版中均提供了该命令,命令参数略有区别,但大致是一样的. 1. 注册软件 以jdk为例,安装了jdk以后,先要在update-alternatives工具中注册: # update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_91/bin/java 200

  • 使用Linux的alternatives命令替换选择软件的版本方法

    上周在安装搜索引擎Elasticsearch时,要求安装比较新的java 版本,我选择了java 1.8.0,安装java 成功后使用java -version 发现使用的版本仍旧是1.6.0, 查询了一些资料,发现可以使用Linux的alternatives命令替换选择软件的版本. 说明: alternatives --install <link> <name> <path> <priority> 其中, install表示安装 link是符号链接 nam

  • linux使用update-alternatives切换java版本

    linux使用update-alternatives切换java版本 关于update-alternatives命令的使用,请见: http://www.jb51.net/article/112372.htm 之前的文章说明了使用文件夹管理来代替原来的当个命令配置的方式,不过这个是属于个人使用的方式,并不是规范的通用的方式. 按照默认的方式,每一个软件包对应的命令都是分别设置的,这样的好处是,可以不同的命令使用不同的版本.如java使用1.9,javap使用1.8 还是以java为例,它默认配置

  • 通过一个命令轻松切换Java的版本

    前言 在日常开发中,有时候我们需要切换jdk版本,去编译一些指定jdk的东西. 比如今天我需要编译Android6.0源码,那我得把jdk切换到openjdk-1.7, 要知道, 我还要用1.6的jdk编译安卓4.4.4源码的. 那么问题来了,一键切换java版本的要如何实现. 我们看一下实现后的效果. 我们可以看到,默认java环境是1.6.0, 当我输入java7后, java version变成了1.7.0, 我输入java8后, 变成了1.8.0 要的就是这个效果.一个命令切换.多么方便

  • 如何在Mac下配置多个Java版本

    说明 使用工具:brew cask brew cask是一个用命令行管理Mac下应用的工具,提供了自动安装和卸载功能,能够自动从官网上下载并安装 最新的版本,它是基于homebrew的一个增强工具. 一. 安装最新版的Java # 如何没有安装 brew cask.请执行 $ brew tap caskroom/versions $ brew cask install java 二.安装其他版本的Java 如果你需要安装其他的jdk(JDK 7 或者 JDK 6),可以使用homebrew-ca

  • ubuntu系统下切换python版本的方法

    目录 一.概述 二.使用update-alternatives更新python版本 2.1.查看ubuntu下的所有python版本 2.2.更新update-alternatives替代列表 2.3.查看update-alternatives下的python版本 2.4.切换python版本 2.5.删除python版本 总结 一.概述 在ubuntu环境下进行嵌入式开发,我们在进行不同的项目开发时,可能会遇到python环境不统一的情况.这时,我们可以通过update-alternative

  • linux上配置jdk时,java命令提示没有此文件或文件夹的解决方法

    出现这个问题可能有以下几种原因: 1.对该文件没有执行的权限. 2.我们的机器是64位的,而下载的jdk是32位的. 我就是后一种原因造成的,好久才想明白. 以上这篇linux上配置jdk时,java命令提示没有此文件或文件夹的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 微信支付java版本之JSAPI支付+发送模板消息

    本文为大家分享了java版本之JSAPI支付+发送模板消息的相关资料,供大家参考,具体内容如下 1.工具类 工具类见:微信支付JAVA版本之Native付款 2.公众账号设置 3.代码实现 openId:openId为用户与该公众账号之间代表用户的唯一标示  以下类中涉及到生成token,关闭订单接口调用,获取配置文件信息,和工具类,在其他文章中有具体代码实现 package com.zhrd.bussinss.platform.controller.rest; import java.io.F

  • Java版本的回文字算法(java版本)

    废话不多说了,直接给大家贴代码了,具体代码如下所述: package com.gdh.backtext; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; public class BackText { String text; public BackText() { super(); this.text = null; } public BackText(String text) { supe

  • 浅谈Linux下免密码切换到root用户当注意的问题

    Linux(以Centos系统为例子)下进行用户切换的时候,使用su. 一般如下: su username su - username 第一种方式,切换用户后,还是使用以前登录用户的环境变量,有时候运行有些程序会出问题. 第二种方式比较彻底,切换后,用户的环境变量也跟着变化,切换后就是当前用户的环境变量. 以上两点需要注意下. 我们切换到root用户的时候,直接使用su 或者su -,但是有个问题是,需要输入密码.这样比较麻烦.我们可以让某个用户无密码登录到root用户,需要进行如下的设置: v

  • LInux下安装MySQL5.6 X64版本步骤详解

    环境: 1.CentOS6.5 X64 2.mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz 3.下载地址:http://dev.mysql.com/downloads/mysql/ 安装步骤 1.再安装包的存放目录下执行命令解压文件 tar -zxvf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz -C /opt/ 2.删除安装包,重命名解压后的文件 rm -rf mysql-5.6.34-linux-glibc2.5-x

  • 在PyCharm的 Terminal(终端)切换Python版本的方法

    在我的电脑中存在多个版本的Python,实际工作中也时常需要切换Python版本来进行相关工作.在Pycharm的终端中使用python和ipython命令进入的python shell都是环境变量中,也就是默认的python版本. 每次在 PyCharm 软件中 Terminal 窗口 或者 在cmd 命令行界面中 ,执行 python 命令,启动的都是 python3 的交互界面: 在 PyCharm 软件中 Terminal 窗口 中,输入python优先进入环境变量中的python3.6

随机推荐