Mac上使用Jenv管理多个JDK版本
使用Java时会接触到不同的版本。大多数时候我在使用Java 8,但是因为某些框架或是工具的要求,这时不得不让Java 7上前线。一般情况下是配置JAVA_HOME,指定不同的Java版本,但是这需要人为手动的输入。如果又要选择其他版本,就需要对JAVA_HOME重新进行设置。终于,我发现了JEnv。
正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友。使用简单的命令就可以在不同的Java版本之间进行切换。如果你使用过rbenv,你会发现JEnv就如同rbenv的Java版一样。
基本使用: 在Mac OS下使用Homebrew安装JEnv:
> brew install jenv
安装成功后需要进行一下简单的配置,让它可以起作用:
> echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile > echo 'eval "$(jenv init -)"' >> ~/.bash_profile
好了,JEnv已经安装好了,让我们来看一下它找见哪个Java版本了:
> jenv versions * system (set by /Users/bxpeng/.jenv/version)
它只找到了系统默认的Java,*表示当前选择的版本。尽管我已经下载了其他版本的Java,但是它并不会自动发现
和rbenv不同的是,JEnv不能自己安装任何版本的Java,所以需要我们手动安装好之后再用JEnv指向它们。
安装Java 7,可以在Oracle进行下载.它将安装到/Library/Java/JavaVirtualMachines/下;
安装Java 8,可以在Oracle进行下载.它将安装到/Library/Java/JavaVirtualMachines/下。
使用jenv add将Java 7、Java 8加入jenv中:
> jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/ 1.7 added 1.7.0.71 added oracle64-1.7.0.71 added
> jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/ 1.8 added 1.8.0.25 added oracle64-1.8.0.25 added
现在运行jenv versions会显示:
> jenv versions * system (set by /Users/bxpeng/.jenv/version) 1.7 1.7.0.71 oracle64-1.7.0.71 1.8 1.8.0.25 oracle64-1.8.0.25
对于多余的版本使用jenv remove可以从jEnv中去掉不需要的Java版本:
> jenv remove 1.6 JDK 1.6 removed
整理后,再运行jenv versions会显示:
> jenv versions * system (set by /Users/bxpeng/.jenv/version) 1.7.0.71 1.8.0.25
选择一个Java版本,运行jenv local,例如:
> jenv local 1.8.0.25 > java -version java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
OK,我们已经成功地指定了某文件夹中local的Java版本。我们也可以运行jenv global
设置一个默认的Java版本,运行jenv which java
显示可执行的Java的完整路径。
你也可以在特定的文件夹下使用.java-version
文件来设定Java的版本。当我需要在Project中使用Java 7时,仅仅需要把1.7.0.71作为内容保存在.java-version
文件中,当进入该文件夹时,JEnv会自动地帮助我设定local的Java的版本。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
区块链开发公司谈区块链的主要特征
近年来,随着应用的逐渐铺开,区块链技术愈发引人关注。虽然距离大规模应用仍有距离,但关于区块链的讨论日渐深入并逐步趋向理性。基于分布式记账、集体合约和智能共识等机制,区块链技术最初呈现出的去中心化、开放共享、真实可靠等信息特性一度引发高度关注,其中去中心化的特征尤为受追捧,对去中心化的关注自区块链诞生以来就一直存在。 区块链技术是一种不依赖第三方、通过自身分布式节点进行网络数据的存储、验证、传递和交流的一种技术方案。因此,有人从金融会计的角度,把区块链技术看成是一种分布式开放性去中心化的大型网络记账薄,任何人任何时间都可以采用相同的技术标准加入自己的信息,延伸区块链,持续满足各种需求带来的数据录入需要。 1、开放、共识,任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一份完整的数据库拷贝。节点间基于一套共识机制,通过竞争计算共同维护整个区块链。任一节点失效,其余节点仍能正常工作。 2、交易透明、双方匿名,区块链的运行规则是公开透明的,所有数据信息也是公开的,因此每一笔交易都是对所有节点可见。由于节点与节点之间是去信任的,因此节点之间无需公开身份,每个参与节点都...
- 下一篇
Selenium + C# 实现模拟百度贴吧签到 1
代码直通车 Github FoxCrawler项目下的SeleniumClawer解决方案 工具介绍 Selenium:是一个自动化测试工具,封装了很多WebDriver用于跟浏览器内核通讯,我用开发语言来调用它实现PhantomJS的自动化操作。它的下载页面里有很多东西,我们只需要Selenium Client,它支持了很多语言(C#、JAVA、Ruby、Python、NodeJS),按自己所学语言下载即可。 下载地址:http://docs.seleniumhq.org/download/ Nuget 使用 image.png Selenium的好处 Selenuim的好处是显而易见的,当我们爬取网站信息时候,难免会碰到异步加载,数据延时绑定,数据接口定位难,加密信息解码难等问题。其实最终数据都会完整的显示在界面上,既然数据能够显示出来,使用Selenium操控WebDriver进行模拟浏览器行为(点击,切换,移动)等等事件,等待数据显示,然后使用选择器(Id,Class,XPath等)进行爬取,这是一种符合人习惯的编程方式。当然我也不是说其他的方式不好,只是在同等时间的情况下,这...
相关文章
文章评论
共有0条评论来说两句吧...