zoukankan      html  css  js  c++  java
  • 如何在Windows中快速切换不同的Java版本

      作为一名Java程序员,我们经常需要在不同的Java版本下运行我们的应用程序,或者,我们想在不同Java版本上尝试运行我们的代码。当然,如果你在IDE下工作,可以非常轻松地切换Java版本(大部分IDE都提供该功能),但是如果你只想在CMD下运行Java程序,而又不想频繁地去修改系统环境变量,有什么好的办法呢?

      本文将向你介绍如何在Windows中同时安装多个Java版本,以及如何通过命令行非常简单地在不同地Java版本间进行切换。

    安装多个不同版本的Java

      在Windows中同时安装多个Java版本非常容易,你只需要下载并运行每个版本的安装程序,它们会自动安装到不同的目录中

    下载不同版本的Java

    • Java SE 1.1 - 该版本不能运行在64位Windows上
    • Java SE 1.2 - 默认安装到目录C:jdk1.2.2C:Program Files (x86)JavaSoftJRE1.2 - 推荐安装到目录C:Program Files (x86)Javajdk1.2.2和目录C:Program Files (x86)Javajre.1.2.2
    • Java SE 1.3 - 默认安装到目录C:jdk1.3.1_28 - 推荐安装到目录C:Program Files (x86)Javajdk1.3.1_28
    • Java SE 1.4 - 默认安装到目录C:j2sdk1.4.2_19 - 推荐安装到目录C:Program Files (x86)Javajdk1.4.2_19

      下面这些版本不用修改安装目录,直接默认安装:

      注意:以下Oracle发行版只能用于个人开发,不能应用于商业软件开发:

      以下最新版本仅可用于测试:

      注意,由于Oracle版权的问题,我们推荐下载OpenJDK版本:

    环境变量

      大部分情况下,我们都可以通过以下两个环境变量来确定当前应用程序使用的是哪个Java版本:

    • JAVA_HOME - 多数脚本使用该环境变量来确定Java版本的位置。
    • Path - 当从控制台运行Java二进制文件(如iava和javac)时,使用的是该环境变量。

    手动设置环境变量

      上面列出来的Java安装程序在安装过程中都会自动创建环境变量,首先我们需要手动清除掉这些环境变量。最简单的方式是使用Windows搜索栏,输入“env”,然后打开"Edit the system environment variables"。当然,你也可以打开Windows资源管理器,右键单击“我的电脑”,选择“属性”,在打开的窗口中点击“高级系统设置”,然后打开“环境变量”。

      如下图所示,

    • "User variables"中应该不包含任何与Java相关的环境变量。
    • "System variables"中应该包含"JAVA_HOME"环境变量并且指向你本地所安装的其中一个Java版本的目录(我当前安装的是Java 16)。如果"JAVA_HOME"环境变量不存在,则需要手动添加。
    • 删除“Path”环境变量中与Java相关的值,如:
      • C:ProgramDataOracleJavajavapath
      • C:Program Files (x86)Common FilesOracleJavajavapath
    • 同时在"Path"环境变量中添加:
      • %JAVA_HOME%in

      修改完之后的“Path”环境变量的值看起来像这样:

      这里的“%JAVA_HOME%in”确保当程序查找“Path”环境变量时,找到的Java版本的位置与“JAVA_HOME”环境变量中所对应的位置是一致的。

      现在打开控制台,输入下面的命令来检查以上设置是否有效:

    echo %JAVA_HOME%
    java -version

      如果你看到下图所示的结果,则表示设置没有问题:

    添加切换Java版本的脚本

      接下来我们将为每个Java版本添加一个脚本文件,以方便在多个不同Java版本间进行快速切换。我将这些脚本文件存放到目录C:|Program FilesJavascripts中,然后将该目录添加到"Path"环境变量:

      这些脚本文件被命名为java16.bat、java15.bat、java14.bat、java14.bat、java13.bat等等,在每一个脚本文件中,我们会修改当前“JAVA_HOME”环境变量的值为对应Java版本的位置。例如下面是java16.bat脚本文件的内容:

    @echo off
    set JAVA_HOME=C:Program FilesJavajdk-16
    set Path=%JAVA_HOME%in;%Path%
    echo Java 16 activated.

      这个脚本很简单,我们在“Path”变量值的开头部分插入了当前要切换的Java版本所对应目录的位置,该位置是Java版本目录中Java.exe可执行文件的位置,因此,每一次Java版本的切换都会导致“Path”变量的值增加,不过这个只会影响当前打开的控制台,当控制台被关闭后该操作也就失效了。

      下面这个ZIP文件包含了从Java 1.2到Java 17的所有脚本,你可以下载以供参考:scripts-up-to-jdk17.zip

      最后,让我们来快速测试一下我们的脚本是否能正常工作。注意,将目录C:|Program FilesJavascripts添加到“Path”环境变量后,你需要打开一个新的控制台来获取新添加的环境变量的值。

      关掉该控制台,然后重新打开一个控制台,输入"java -version",你会看到当前Java版本又恢复到默认版本了。

  • 相关阅读:
    容器网络(一)docker容器网络驱动
    双指针遍历/滑动窗口 —— 209_长度最小的子数组
    双指针遍历/滑动窗口 —— 121_买卖股票的最佳时机
    双指针遍历/滑动窗口 —— 42_接雨水
    双指针遍历/滑动窗口 —— 26_删除排序数组中的重复项
    双指针遍历/滑动窗口 —— 16_最接近的三数之和
    双指针遍历/滑动窗口 —— 15_三数之和
    双指针遍历/滑动窗口 —— 11_盛最多水的容器
    双指针遍历/滑动窗口 —— 3_无重复字符的最长子串
    链表操作 —— 206_反转链表
  • 原文地址:https://www.cnblogs.com/jaxu/p/14972722.html
Copyright © 2011-2022 走看看