linux下jdk多版本管理

项目开发中,不管是哪种语言都避免不了多个版本环境管理问题(本文虽然以jdk为例来写的,但不仅限于jdk),如何能做到快速的环境升级与切换确实是一件深思的事!

安装jdk

实验安装两个版本:

下载
  • wget http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz
  • wget http://download.oracle.com/otn/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz
安装

我把它安装到/opt中。

  • tar -zxvf jdk-7u80-linux-x64.tar.gz
  • 在/opt 创建目录:sudo mkdir java
  • sudo mv jdk1.7.0_80 /opt/java

jdk8的方式也是一样。

创建软连接
  • sudo ln -s jdk1.7.0_80 jdk
  • 默认使用jdk7
更改环境变量
  • echo $PATH 输出下,其实这个相当于window系统下的path

  • cd ~ 进入到家目录

  • sudo vi .bashrc

  • 最后加入:export PATH=/opt/java/jdk/bin:$PATH

  • source .bashrc

  • 此时直接可以输出:java -verson,为java7

直接在 /etc/profile修改即可:

export JAVA_HOME=/opt/java/
export PATH=$JAVA_HOME/bin:$PATH

如果有天环境要做升级的话,比如要把jdk7升级到jdk8,我们只需要更改软连接地址:

  • 把原来的jdk软连接删除掉
  • 重新生成:sudo ln -s jdk1.8.0_144 jdk
  • 此时已经升级完成

综述

以上版本管理的方式在linux中随处可见,比如python都是采用软连接的形式。

基于jenv工具管理

  • git clone https://github.com/gcuisinier/jenv.git ~/.jenv
  • cd ~ 会发现多出一个文件夹.jenv,这个就是jenv的软件包
  • 把jenv目录导入到环境变量 echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile

    echo 'eval "$(jenv init -)"' >> ~/.bash_profile

    source ~/.bash_profile

此时输入:jenv 会输出信息:jenv 0.4.3-18-g66bb5b1

以上已经安装了jdk,我们只需要把jdk加入到jenv即可:

  • jenv add /opt/jdk1.7.0_80
  • jenv add /opt/jdk1.8.0_144
看当前使用的java所在路径

jenv which java

查看可以设置的java版本

jenv versions

使用某个版本的JDK(全局)

jenv global 1.8

去掉某些没有的版本

jenv remove 1.8.0.144

最新文章

  1. 手机web页面开发-第一弹
  2. @ModelAttribute 注解及 POJO入参过程
  3. ThinkPHP 知识点链接
  4. jsp页面不能使用EL表达式
  5. adb uninstall
  6. 【BZOJ】1067: [SCOI2007]降雨量(rmq+变态题)
  7. Rhythmbox中文乱码解决办法
  8. 对于volatile的理解
  9. 一个C++的多态和虚函数实例
  10. 【JQ成长笔记】关于$(this).index与$.each的使用
  11. shell命令实战详解
  12. ExtJs迄今datefield控制设置默认值
  13. web开发后端开源库收集
  14. @PathVariable和@RequestParam的区别,@SessionAttributes
  15. python 文件的写删改
  16. FastStone Capture(FSCapture)
  17. 在CMD命令下安装nexus报错和启动的问题
  18. LINQ to SQL 中 Concat、Union、Intersect、Except 方法的使用
  19. 《http权威指南》读书笔记1
  20. JavaScript中的Date对象在IOS中的“大坑”

热门文章

  1. python gzip压缩
  2. spring boot 缺点优点?
  3. Windows 10 Enterprise LTSB版本
  4. 使用Kinect2作为Oculus游戏应用的输入设备
  5. 怎样优雅的研究 RGSS3 (四) 使窗体从画面边缘弹出
  6. 通过Fsharp探索Enterprise Library Exception
  7. poj 1390 Blocks (经典区间dp 方块消除)
  8. How to Start a New Cocos2d-x Game for version 3.0
  9. 会话管理之session技术
  10. php-fpm添加service服务