Ubuntu下安装多个Java及切换
有时为了需要,会在系统中安装多个Java。网上关于这个问题的解决都是同一种思路,即利用sudo update-alternatives
进行配置。
我这里也是使用这种方法,只是编写了一个脚本,使得操作起来方便一些。
多个Java的安装
我是在Oracle上下载的压缩包进行解压的。解压完成之后,我们需要将其配置到系统当中,如下
install_java.sh
#!/bin/bash
if [ $# -eq 0 ]thenecho "Provide the jdk path to be installed!"exit
fiif [ ! -e "${1}" ]thenecho "Provided jdk: ${1} does not exist!"exit
fiJDK_PATH=${1}
INSTALL_PRIORITY=300# Remove last '/'
if [ ${1:0-1:1} = '/' ]thenJDK_PATH=${1%/*}
fiif [ $# -gt 1 ]thenINSTALL_PRIORITY=${2}
fiecho "You specify jdk: ${JDK_PATH}"sudo update-alternatives --install /usr/bin/java java ${JDK_PATH}/bin/java ${INSTALL_PRIORITY}
sudo update-alternatives --install /usr/bin/javac javac ${JDK_PATH}/bin/javac ${INSTALL_PRIORITY}
sudo update-alternatives --install /usr/bin/javah javah ${JDK_PATH}/bin/javah ${INSTALL_PRIORITY}
sudo update-alternatives --install /usr/bin/javaws javaws ${JDK_PATH}/bin/javaws ${INSTALL_PRIORITY}
sudo update-alternatives --install /usr/bin/javap javap ${JDK_PATH}/bin/javap ${INSTALL_PRIORITY}
这个脚本有2个参数:
1. jdk的路径(必须)
2. 安装此jdk的priority(可选,默认是300)
Java版本切换
网上介绍的方法是使用update-alternatives --config
命令,对上边安装的java
, javac
…等进行一一配置,选取哪一个jdk为默认的。
其实我们可以借助于安装时的priority
来达到这个目的,这个值是越大越优先,所以我们在使用install_java.sh
时只需要将第二个参数指定为一个比较大的数字(大于目前所存在的jdk的priority)就可以将当前安装的jdk设置为默认选中的。
删除安装的Java
附上如何删除的脚本
remove_java.sh
#!/bin/bash
if [ $# -eq 0 ]thenecho "Provide the jdk path to be removed!"exit
fiif [ ! -e "${1}" ]thenecho "Provided jdk: ${1} does not exist!"exit
fiJDK_PATH=${1}sudo update-alternatives --remove java ${JDK_PATH}/bin/java
sudo update-alternatives --remove javac ${JDK_PATH}/bin/javac
sudo update-alternatives --remove javah ${JDK_PATH}/bin/javah
sudo update-alternatives --remove javaws ${JDK_PATH}/bin/javaws
sudo update-alternatives --remove javap ${JDK_PATH}/bin/javap
使用oracle-java7-set-default
切换Java版本
首先需要添加安装源
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
然后安装对应版本的”切换器”即可
将oracle jdk7设置为默认
sudo apt-get install oracle-java7-set-default
将oracle jdk8设置为默认
sudo apt-get install oracle-java8-set-default
参考
- Ubuntu 下 Java 版本的切换
- shell截取字符串的方法
- Shell脚本8种字符串截取方法总结
Ubuntu下安装多个Java及切换相关推荐
- Linux: debian/ubuntu下安装和使用Java 11
Linux: debian/ubuntu下安装和使用Java 11 只需6行命令: su - echo "deb http://ppa.launchpad.net/linuxuprising ...
- Linux: debian/ubuntu下安装和使用Java 8
Linux: debian/ubuntu下安装和使用Java 8 7行命令解决问题: su - echo "deb http://ppa.launchpad.net/webupd8team/ ...
- linux/ubuntu下安装java开发环境
在ubuntu下安装和配置java开发环境,下面对自己的一些实践做了一下总结. Sun JDK的安装一般有两种方式: 一.通过ubuntu提供的包管理工具进行安装 ubuntu在其包仓库里都包括有JD ...
- ubuntu eclipse java_ubuntu 下安装eclipse amp;java环境配置
前面有一篇的博客写的是ubuntu下安装eclipse和java环境的配置.当时是安装网上的攻略进行的 ,当然也是能够成功的. 近期把那台电脑送人了 ,仅仅好在自己的这台电脑上又一次安装一次了 ,唯一 ...
- Linux: debian/ubuntu下安装Neo4j
文章目录 Linux: debian/ubuntu下安装Neo4j Linux: debian/ubuntu下安装Neo4j Neo4j的官方仓库地址:neo4j/neo4j: Graphs for ...
- Ubuntu下安装Nginx,PHP5(及PHP-FPM),MySQL
Ubuntu下安装Nginx,PHP5(及PHP-FPM),MySQL 2012-09-15 11:12:31 标签:php mysql ubuntu nginx php-fpm 原创作品,允许转载 ...
- Ubuntu下安装Qt全部过程
Ubuntu下安装Qt全部过程 (2013-03-04 22:12:02) 转载▼ 分类:ARM Linux 1.到官网http://qt-project.org/downloads或者ftp:/ ...
- Docker最全教程之Ubuntu下安装Docker(十五)
前言 Ubuntu是一个以桌面应用为主的开源GNU/Linux操作系统,应用很广.本篇主要讲述Ubuntu下使用SSH远程登录并安装Docker,并且提供了Docker安装的两种方式,希望对大家有所帮 ...
- ubuntu下安装JDK和netbeans
我在ubuntu下安装netbeans十分简单,我下载了jdk-7u1-nb-7_0_1-linux-ml.sh,直接在终端输入 sh jdk-7u1-nb-7_0_1-linux-ml.sh 安装的 ...
- Ubuntu下安装Oracle11g(图文教程)
由于课程需要,要在Ubuntu下安装一个Oracle,之前都没有装过,所以想通过这篇博文记录一下 1.下载Oracle 11g 下载地址:http://www.oracle.com/technetwo ...
最新文章
- 90.386(32位)的保护模式 (286是过渡24位) 91.什么是实模式
- SpringBoot 项目使用 SLF4J+logback 进行日志记录,来增强可维护性
- Linux 学习笔记之超详细基础linux命令 Part 3
- 基于RBAC的权限设计
- asp.net mvc 应用Bundle(捆绑和微小)压缩技术 启用 BundleConfig 配置web.config
- 设计在链式存储结构上交换二叉树中所有结点左右子树的算法
- 冯仑《企业领导最容易犯的十大错误》
- c语言编程绘制空间螺旋线,在UG中绘制变螺距螺旋线的方法
- 12306接口协议分析
- Qt opengl fps相机
- 汽车免费WiFi的原理是什么?
- android 绘制坐标系(雷达探测界面)
- wear手表软件合集_如何找出正在使用Android Wear手表电池的电池
- 渗透测试工具集(非常详细),从零基础入门到精通,看完这一篇就够了(附安装)
- VS code安装和使用技巧
- KiTTY/cnKiTTY与PuTTY/cnPuTTY差异和使用的简单说明~~
- 搭建机器人电控系统——PID算法——什么是PID?
- 贝加莱PLC编程总结
- Xxe漏洞 php,PhpSpreadsheet 1.5.0 XXE漏洞复现及分析
- 到底什么是重入锁,拜托,一次搞清楚!
热门文章
- 2021 腾讯校招 + 后台开发面经(已 offer)
- oracle mysql 同义词_Oracle数据库同义词
- SpringBoot注解校验validation自定义异常返回错误消息给前端
- PHP中单引号与双引号用法
- python打印数字每行自增1个数
- 用之前使用正常的keil工程调试程序时,一直卡在 0x00000000 的解决方案
- thinkphp 5 验证码错误,可能与session保存路径不同有关
- 关于对象中的this指向和修改this指向问题。
- 美团外卖饿了么百度外卖竞品分析报告
- 基金常用的分析指标:跟踪误差率、信息比率、夏普比率到底是什么意思?