草庐IT

同时安装多个JDK的环境变量配置及切换方式

Bombradish 2024-01-21 原文

前言

我们在日常的java开发过程中,JDK的配置永远是绕不开的问题。假设你是一个学生,你在电脑上安装配置了一个1.6版本jdk,然后因为下载的其他软件导致版本不兼容或者其他的原因需要你将jdk的版本换成1.8,但你又不想删除之前的1.6版本;又或者你是一名刚入职的员工,在熟悉公司的项目后,发现多个项目可能需要在某些版本的jdk环境下才能正常运行,这时你就需要了解一下多jdk版本的环境配置及切换问题啦。

这里我就不讲下载过程了,不清楚安装过程的小伙伴可以看一下其他大佬的讲解。
现在我的电脑上已经安装好了jdk1.6和jdk1.8的版本,接下来将以这两个版本为例,具体讲解一下多jdk的配置流程,以及如何实现不同jdk的随意切换?

JDK官网下载地址

版本准备

jdk1.6已经准备完毕

jdk1.8已经准备完毕

配置流程

  1. 现在打开电脑设置->系统->关于->高级系统设置->高级->环境变量 或者在任务栏搜索框直接搜索环境变量

  2. 然后我们在环境变量中选择新建三个环境变量,分别为

序号变量名变量值
1JAVA_HOME%JAVA8_HOME%
2JAVA6_HOMEE:\worktools\java\Java6\jdk1.6.0_45
3JAVA8_HOMEC:\Program Files\Java\jdk1.8.0_101

其中序号1的变量名是固定的,序号2,3的变量名可以自行决定,我这里就以jdk的版本命名了。
序号1的变量值其实就是序号2或3的变量名,然后两边用%包裹。序号2,3的变量值其实就是他们对应jdk版本的路径(记得是在能看到bin目录的那一级)。

  1. 接着新建环境变量:CLASSPATH
变量名变量值
CLASSPATH.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

电脑上如果已经配置过jdk版本的朋友,环境变量中可能已经存在 JAVA_HOMECLASSPATH,不需新建,查看对照一下是否完善即可。另外CLASSPATH 的变量值在配置时需要注意一下标点符号,建议直接复制。
4.在环境变量中找到Path,选择编辑双击,在他的环境变量值中添加两条新内容。

在这里我想提一个题外话,有些朋友在编辑环境变量时会发现原本某个变量,自己之前操作时,他的变量值是一个条理分明的文本,等下次再查看时变成了不易查看的一列,十分的不友好,具体的解决办法可以查看我的另一篇博客:

解决环境变量的变量值从有条理的文本变为一列的问题:https://blog.csdn.net/Bombradish/article/details/129091134

%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin


在将两条内容编辑完后,可以将他们适当的上移,以保证足够高的优先级,但尽量不要移动到C:\Windows\System32的上边,我看到有些博主说直接移动到最上边,这样的做法虽然没错,但会出现一个令人很不好的体验,就是下次再打开Path会发现变量值变为了一列。

总结

此时比较敏感的朋友可能已经察觉到了,JAVA_HOME 的变量值其实就是jdk版本随意切换的关键,当你需要切换到所需的jdk版本时,只需要修改%%中间的内容即可。

测试结果

以下是测试成功的结果:

jdk1.6版本

jdk1.8版本


注意:每次切换jdk后记得依次点击确定按钮,保证配置生效。并且在查看jdk版本时,确定你是新开了一个cmd运行窗口。

PS:今天公司新同事在进行多jdk配置时,发现不生效,但我看了配置都没错,后来发现是他的Path中两条关于jdk的配置优先级不够。红框内容需要在绿框内容的上边,绿框内容是电脑自带的配置,位置太靠上会把我们自己的配置给覆盖掉。

如有错误或者可以改进的地方,欢迎指正!!!

有关同时安装多个JDK的环境变量配置及切换方式的更多相关文章

  1. ruby-on-rails - Rails 3 中的多个路由文件 - 2

    Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题

  2. ruby-on-rails - 在 Ruby 中循环遍历多个数组 - 2

    我有多个ActiveRecord子类Item的实例数组,我需要根据最早的事件循环打印。在这种情况下,我需要打印付款和维护日期,如下所示:ItemAmaintenancerequiredin5daysItemBpaymentrequiredin6daysItemApaymentrequiredin7daysItemBmaintenancerequiredin8days我目前有两个查询,用于查找maintenance和payment项目(非排他性查询),并输出如下内容:paymentrequiredin...maintenancerequiredin...有什么方法可以改善上述(丑陋的)代

  3. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  4. ruby - 如何以所有可能的方式将字符串拆分为长度最多为 3 的连续子字符串? - 2

    我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123

  5. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  6. ruby-on-rails - Rails - 一个 View 中的多个模型 - 2

    我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何

  7. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  8. ruby-on-rails - Ruby on Rails with Haml - 如何从 erb 切换 - 2

    我正在从erb文件切换到HAML。我将hamlgem添加到我的系统中。我创建了app/views/layouts/application.html.haml文件。我应该只删除application.html.erb文件吗?此外,仍然有/public/index.html文件被呈现为默认页面。我想创建自己的默认index.html.haml页面。我应该把它放在哪里以及如何使系统呈现该文件而不是默认索引文件?谢谢! 最佳答案 是的,您可以删除任何已转换为HAML的View的ERB版本。至于你的另一个问题,删除public/index/h

  9. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  10. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

随机推荐