jEnv 是什么?

先来看一下官方介绍

jEnv is a command line tool to help you forget how to set the JAVA_HOME environment variable.

jEnv 是一个可以帮你你忘掉怎么去配置JAVA_HOME环境变量的命令行工具。

简单来说就是一个便于切换Java版本的工具,有了他我们再也不用手动去改环境变量了。

安装

Mac OS X via Homebrew

brew install jenv

Linux / OS X

git clone https://github.com/gcuisinier/jenv.git ~/.jenv

配置

Bash

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile

Zsh

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc

如果没有在配置好如上的jEnv环境变量的话,在下边的添加JAVA_HOME时会遇到如下错误:

ln: /Users/demo/.jenv/versions/oracle64-1.7.0.45: No such file or directory

如果已经添加但是仍没有生效的话,可以试一下重新加载bash_profile

source ~/.bash_profile

安装Java

可以去Oracle的官网下载JDK的安装包进行安装。也可以通过Homebrew-Cask来安装。

Homebrew-Cask 是一个基于Homebrew来优雅、简单和快速的安装macOS应用和大型二进制文件的工具。

使用如下命令安装Homebrew-Cask

brew tap caskroom/cask

通过Homebrew-Cask我们可以这样安装Chrome

brew cask install google-chrome

我们也可以一行命令来安装Java

brew cask install java

之前有stackoverflow上的问题mac-os-x-and-multiple-java-versions讲到可以通过Home-Cask安装多个Java版本:

brew cask install java7

brew cask install java6

但其实这种方法已经不可用了,会遇到

Error: Cask 'java7' is unavailable: No Cask with this name exists.

因为 Homebrew-Cask已经移除了Java 7,所以想安装Java 7的话,还是需要去Oracle官网下载。

配置Java

Java安装好之后,使用如下命令:

jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home

即可成功添加Java配置到 jEnv(如果遇到错误,请检查下前边的环境变量配置)。

Mac的Java默认会安装到 /Library/Java/JavaVirtualMachines/ 路径下。

同样,我们添加好jdk1.8

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/
oracle64-1.8.0.131 added
1.8.0.131 added
1.8 added

使用

列出管理的JDK

$ jenv versions
* system (set by /Users/demo/.jenv/version)
1.7
1.7.0.45
1.8
1.8.0.131
oracle64-1.7.0.45
oracle64-1.8.0.131

看起来有点多,但其实就是1.7、1.8两个版本的别名。

配置全局Java版本

$ jenv global 1.7

配置当前目录的Java版本

$ jenv local 1.7

这种方式会只改变当前所在目录的Java版本,可以通过如下命令取消

$ jenv local --unset

配置shell实例的版本

jenv shell 1.8

这种配置方式,只会影响当前shell窗口。

配置JVM Options

$ jenv global-options "-Xmx512m"

or

$ jenv local-options "-Xmx512m"

or

$ jenv shell-options "-Xmx512m"

使用jEnv在Mac/Linux环境配置多版本Java的更多相关文章

  1. MAC下 JDK环境配置、版本切换以及ADB环境配置

    网上方法,自己总结:亲测可行! 一.JDK环境配置.版本切换: 通过命令’jdk6′, ‘jdk7′,’jdk8’轻松切换到对应的Java版本: 1.首先安装所有的JDk:* Mac自带了的JDK6, ...

  2. rancher说明为什么需要按照指定版本安装以及rancher和节点linux环境配置-docker指定版本安装

    rancher说明为什么需要按照指定版本安装以及rancher和节点linux环境配置-docker指定版本安装 待办 https://blog.csdn.net/CSDN_duomaomao/art ...

  3. Android JNI MAC OS环境配置

    前言—JNI技术简介 JNI是Java Native Interface的缩写,即“Java本地调用”,它是Java世界和Native世界的中介桥梁.其中Native世界一般指C/C++的世界.众所周 ...

  4. JMeter学习-038-JMeter Linux 环境配置

    1.1.下载 Download URL:http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-3.0.tg ...

  5. mac mysql环境配置

    安装mysql:http://www.mysql.com/downloads/ 找到 MySQL Community Edition (GPL) Community (GPL) Downloads » ...

  6. ProtocolBuffer for Objective-C Mac运行环境配置

    上班第4天,上司让我研究Google的Protocol Buffer,对于我这个小白来说这是一大难题.结合了一下网上资料,用了几个小时的时间,终于搞明白了.做个笔记,也当做资料给大家分享一下. 什么是 ...

  7. mac phpstrom 环境配置

    因为mac下自带php,但是没有环境(ini文件)所有需要自己重新安装一下: curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5 # 5.5 ...

  8. linux环境配置nginx导致页面不刷新

    在linux环境下,配置了nginx负载均衡,由于可能在虚拟主机的配置文件nginx.conf中,对缓存机制未配置成功,导致页面不刷新,仍然显示缓存中的内容. 最后通过注释nginx.conf文件中的 ...

  9. Mac开发环境配置 就喜欢折腾

    暑假放假,开始用自己的电脑配置开发环境进行学习. 虚拟机安装VMware tools也遇到一些问题.折腾之后解决,遇到各种问题,谷歌后都能解决. 折腾了几天虚拟机下的Ubuntu,发现mac带虚拟机太 ...

随机推荐

  1. 金蝶K3 WISE BOM多级展开_销售成本表

    /****** Object: StoredProcedure [dbo].[pro_bobang_SaleCost] Script Date: 07/29/2015 16:13:43 ******/ ...

  2. SpringBoot之hello world!

    哈哈哈,还是在元旦这一天对你下手了.麻溜的给自己充电,在这个寒冬,不断听到裁员的消息或者新闻,可对于我这个外包和外派的人来说,好像并没有受到什么影响.可能是人手不够可能是项目很忙.对于明年的三月金四月 ...

  3. 【Java】 剑指offer(30) 包含min函数的栈

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min ...

  4. selenium webdriver 如何添加cookie

    一. webdriver中常用的cookie方法 webdriver中提供了操作cookie的相关方法: get_cookies()                  获得cookie信息 add_c ...

  5. Codeforces --- 982C Cut 'em all! DFS加贪心

    题目链接: https://cn.vjudge.net/problem/1576783/origin 输入输出: ExamplesinputCopy42 44 13 1outputCopy1input ...

  6. css清浮动与动态计算元素宽度

    css常用清浮动写法 /*清除浮动*/| .clears:after{ display: block; content: ''; clear: both; height: ; visibility: ...

  7. Linux shell编程语法

    由于条件判断和循环跟其他语言都大同小异,学过编程的话很好理解,这里只贴出格式,不具体写用法了.(select菜单会详细讲一下) 条件判断 if条件判断 普通if条件判断: if 判断条件1; then ...

  8. Java 中的字符串转为二进制

    /** * 将字符串转为二进制 */ public class StrConversion { public static void main(String args[]) { String str ...

  9. javascript自制函数图像生成器

    出于某种目的想做这个东西,顺便可以提供给GMA的用户&&放在博客园. 实现上只是简单的描点,加上一个相邻两点连线的开关,完全没有技术含量.而且函数图像一旦多起来就会变卡. 瓶颈在隐函数 ...

  10. CSS3_盒子背景

    盒子背景 盒子背景:content    padding    特殊的 boder 背景 背景绘制 从 padding 开始绘制 背景裁剪 background-clip(默认值 border-box ...