精华内容
下载资源
问答
  • 软件开发和测试中经常要在不同的Java版本之间来回切换,最常见的是从其他Java版本(Java9,Java10,Java11)切换到Java8, 特别是使用Scala,Spark,目前还只是支持java8,必须切换到java8环境,否则无法正常编译和运行. ...

    软件开发和测试中经常要在不同的Java版本之间来回切换,最常见的是从其他Java版本(Java9,Java10,Java11)切换到Java8, 特别是使用Scala,Spark,目前还只是支持java8,必须切换到java8环境,否则无法正常编译和运行.

    这个问题,我有个比较好的解决办法:
    创建一个目录,存放一下java8 java11 2个环境切换脚本.

    /Users/happy/happyscript
    happy:happyscript happy$ ls
    java11 java8
    happy:happyscript happy$

    happy:happyscript happy$ which java
    /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/java

    cd /Library/Java/JavaVirtualMachines/
    $ ls
    jdk-10.0.1.jdk jdk-11.jdk jdk1.8.0_102 jdk1.8.0_181.jdk

    发现原来macbook 上的java 都安装在这里.
    下面创建2个java8,java11 脚本,内容如下:

    happy:happyscript happy$ more java8
    #!/bin/bash

    #这个程序请用 source java8 执行,环境变量才能保存在当前shell环境里.
    echo “这个程序请用 source java8 执行,环境变量才能保存在当前shell环境里.”

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
    echo JAVA_HOME is $JAVA_HOME

    arr=$(echo $PATH | tr : ‘\n’)
    PATH=""

    strB=“JavaVirtualMachines”
    myNewPath=""
    for x in $arr; do
    echo x e c h o " x echo " xecho"{x}" | grep -q " s t r B " r e s u l t = {strB}" result= strB"result=?
    echo “result= r e s u l t x = {result} x= resultx={x} strB=${strB}”

    if [[ $x = *"JavaVirtualMachines"* ]]; then
         echo $x
    else
         export myNewPath=$myNewPath:$x
    fi
    

    done

    export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:myNewPath
    echo $PATH
    java -version

    $ more java11
    #!/bin/bash
    #这个程序请用 source java11 执行,环境变量才能保存在当前shell环境里.
    echo “#这个程序请用 source java11 执行,环境变量才能保存在当前shell环境里.”
    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
    echo JAVA_HOME is $JAVA_HOME

    arr=$(echo $PATH | tr : ‘\n’)
    PATH=""

    strB=“JavaVirtualMachines”
    myNewPath=""
    for x in $arr; do
    echo x e c h o " x echo " xecho"{x}" | grep -q " s t r B " r e s u l t = {strB}" result= strB"result=?
    echo “result= r e s u l t x = {result} x= resultx={x} strB=${strB}”

    if [[ $x = *"JavaVirtualMachines"* ]]; then
         echo $x
    else
         export myNewPath=$myNewPath:$x
    fi
    

    done

    export PATH= m y N e w P a t h : myNewPath: myNewPath:JAVA_HOME/bin
    echo $PATH

    vi ~/.bash_profile

    添加你刚才保存脚本的路径
    #java_home change by java8,java11 shell command
    export PATH=$PATH:/{你的路径脚本路径}

    source ~/.bash_profile
    好了。现在可以测试一下了。

    source java11
    在这里插入图片描述

    source java8

    在这里插入图片描述

    到此,测试成功,可以方便的使用了.

    展开全文
  • java版本切换

    2016-12-15 14:18:06
    新建一个脚本文件比如为java8.sh,在里面设置java的环境变量,当要切换jdk1.8时,在终端输入source java8.sh。 这样设置完后只会在当前的终端窗口内有效,重新打开一个终端窗口时又回到以前的版本了。

    新建一个脚本文件比如为java8.sh,在里面设置java的环境变量,当要切换jdk1.8时,在终端输入source java8.sh。
    这样设置完后只会在当前的终端窗口内有效,重新打开一个终端窗口时又回到以前的版本了。

    展开全文
  • linux 使用alternatives 切换Java版本

    千次阅读 2016-12-22 23:11:21
    xception in thread "main" java.lang.UnsupportedClassVersionError: M : Unsupported major.minor version ...经过查找原来是javac的版本java版本不一致导致的, 因为我机器上安装了系统自带的java-1.5.0-gcj

    Exception in thread "main" java.lang.UnsupportedClassVersionError: M : Unsupported major.minor version

    在linux上编译的java程序,在运行的时候报这个错误。

    经过查找原来是javac的版本和java的版本不一致导致的,

    因为我机器上安装了系统自带的java-1.5.0-gcj和1.7.0的openjdk,另外我还自己安装了1.8.0的Oracle 官方的jdk

    导致编译器的版本和运行器的版本不一致。


    解决这个问题的方法是使用alternatives 切换默认的java命令

    这个工具的大概原理是

    在/usr/bin目录下创建一个符号链接,指向/etc/alternatives/ 下的的文件,而该文件依然是一个符号链接,举个栗子

    [plain]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. [root@node1 mec]# ll /usr/bin/java  
    2. lrwxrwxrwx. 1 root root 22 4月  16 16:06 /usr/bin/java -> /etc/alternatives/java  

    [plain]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. [root@node1 mec]# ll  /etc/alternatives/java  
    2. lrwxrwxrwx. 1 root root 26 4月  16 16:06 /etc/alternatives/java -> /usr/java/default/bin/java  


    /etc/alternatives/java会指向最终的可执行文件,如果你有3个版本的java

    就需要运行 

    [plain]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. [root@node1 mec]# alternatives --config java  
    2.   
    3. 共有 3 个程序提供“java”。  
    4.   
    5.   选择    命令  
    6. -----------------------------------------------  
    7.    1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java  
    8. *  2           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java  
    9.  + 3           /usr/java/default/bin/java  
    10.   
    11. 按 Enter 来保存当前选择[+],或键入选择号码:  
    然后选择你想要选择的选项保存就好了


    如果这个列表里面没有你想要的而且已经安装了的程序,就需要添加 命令为

    [plain]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. alternatives --install /usr/bin/java java /usr/java/default/bin/java 500  

    这个命令实际操作的是 /var/lib/alternatives目录下对应的文件

    alternatives的安装删除显示等操作都是通过读取和修改这个目录下的文件实现的,而且是文本文件,感兴趣的可以取阅读一下



    =============================================================

    另外,/etc/profile中path的设置,可以选择覆盖或不覆盖/usr/bin/java命令。

    如果我这样设置profile,那么会使用jdk1.5 :

          #set java environment
          JAVA_HOME=/home/wuekzhu/download/jdk1.5.0_22
          CLASSPATH=.:$JAVA_HOME/lib.tools.jar
          PATH=$JAVA_HOME/bin:$PATH

    如果我这样设置profile,那么会使用/usr/bin/java - > /etc/alternatives/java :

          #set java environment
          JAVA_HOME=/home/wuekzhu/download/jdk1.5.0_22
          CLASSPATH=.:$JAVA_HOME/lib.tools.jar
          PATH=$PATH: $JAVA_HOME/bin


    展开全文
  • 安装了多个java 如何切换java版本

    万次阅读 2019-10-06 11:28:32
    修改`JAVA_HOME`中的地址即可,可写个程序来快速修改.

    安装了多个java 如何切换java版本

    问题描述

    平常用的是java8,最近在学习java的新特性。这就需要从java8往更高的java版本切换。由于还在使用java8,测试完新特性后我需要再切换回java8.

    如何切换

    安装java的时候我们会配置JAVA_HOME这个环境变量.所有要切换java版本,只需要修改JAVA_HOME即可,在JAVA_HOME里面写上java8的安装目录,那就使用的是java8,JAVA_HOME里面写上java9的安装目录,则使用的是java9

    解决方案

    手动切换

    手动修改,JAVA_HOME中的地址即可,这里不介绍。

    在cmd中临时切换java版本

    例如现在在cmd中,临时需要用到java9的jshell,可以输入如下命令进行设置:

    set path=E:\java\java9\jdk-9\bin;%path%
    

    其中:

    E:\java\java9\jdk-9\bin
    

    是jdk9的安装路径.

    批处理实现

    因为手动修改JAVA_HOME,太过繁琐,所以通过一个批处理程序来实现.

    新增环境变量

    新增JAVA_HOME_8,JAVA_HOME_9,JAVA_HOME_11分别写入java8,java9,java11的安装目录,这和配置JAVA_HOME一样.

    批处理脚本

    创建一个名为快捷方式的目录。

    TJava.bat

    在这个快捷方式目录下新建TJava.bat,写入如下命令:

    @echo off
    java -version
    pause
    

    运行这个批处理就可以看到当前用的是哪个java版本了.这里使用批处理是为了快速运行这个java -version命令,不用手动操作。

    CJavaBat.bat

    然后在快捷方式下,创建批处理脚本CJavaBat.bat,开头的Cchange的意思.

    @echo off
    @echo ------------------------------------------------
    @echo 当前Java版本为:
    call TJava.bat
    @echo ------------------------------------------------
    @echo 输入要使用的java版本对应的选项:
    @echo 选项   含义
    @echo 8      切换环境为JDK8
    @echo 9      切换环境为JDK9
    @echo 11     切换环境为JDK11
    @echo ------------------------------------------------
    set /P choose=请输入选择:
    IF "%choose%" EQU "8" (
        REM 修改JAVA_HOME环境变量为%JAVA_HOME_8%,
        setx "JAVA_HOME" "%%JAVA_HOME_8%%" /m
        echo 已经修改 "JAVA_HOME" 为 %%JAVA_HOME_8%%
    ) ELSE IF "%choose%" EQU "9" (
        setx "JAVA_HOME" "%%JAVA_HOME_9%%" /m
        echo 已经修改 "JAVA_HOME" 为 %%JAVA_HOME_9%%
    REM setx "Path" "%cd%;%path%" /m
    ) ELSE IF "%choose%" EQU "11" (
        setx "JAVA_HOME" "%%JAVA_HOME_11%%" /m
        echo 已经修改 "JAVA_HOME" 为 %%JAVA_HOME_11%%
    )
    pause
    

    上面程序中的setx命令就是用来修改环境变量的.语法格式为:setx 环境变量名 环境变量值 /msetx设置环境变量需要管理员权限,以管理员身份,运行上面的CJavaBat.bat就可以修改JAVA_HOME环境变量的内容,从而切换Java版本。

    CJavaBat.bat设置管理员权限

    创建CJavaBat.bat的快捷方式,然后将这个快捷方式重命名为CJava,注意一定要修改名字。
    然后在快捷方式上面右键。选择属性,在快捷方式选项卡上,点击高级,然后勾选上用管理员身份运行
    这样以后直接点击CJava这个快捷方式就可以以管理身份运行CJavaBat.bat这个批处理脚本了。
    在这里插入图片描述在这里插入图片描述

    配置CJava到Path环境变量

    将这个快捷方式目录配置到Path环境变量中,这样系统会在这个目录下查找程序,

    通过Win+R运行CJava

    然后就可以按下Win+R来启动运行,结束输入CJava,即可启动程序。

    CJava程序说明

    CJava中输入选项:8,则切换到Java8,输入9,则切换到Java9,输入11则切换到java11,依次类推,可以拓展上面的程序,以支持切换更多的java版本。

    CJava运行效果

    ------------------------------------------------
    当前Java版本为:
    java version "1.8.0_221"
    Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
    请按任意键继续. . .
    ------------------------------------------------
    输入要使用的java版本对应的选项:
    选项   含义
    8      切换环境为JDK8
    9      切换环境为JDK9
    11     切换环境为JDK11
    ------------------------------------------------
    请输入选择:11
    成功: 指定的值已得到保存。
    已经修改 "JAVA_HOME" 为 %JAVA_HOME_11%
    请按任意键继续. . .
    
    

    可以看到切换之前是Java8,切换后为Java11

    查看是否切换成功

    运行上面创建TJava.bat,查看运行效果:

    java version "11.0.4" 2019-07-16 LTS
    Java(TM) SE Runtime Environment 18.9 (build 11.0.4+10-LTS)
    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.4+10-LTS, mixed mode)
    请按任意键继续. . .
    

    可以看到现在已经成功切换为Java11

    展开全文
  • Java版本切换 1.8 1.6切换

    千次阅读 2018-12-05 11:43:01
    从官网(https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)下载对应版本的jdk,下载完成后,安装。 依次点击 我的电脑-属性-高级系统设置-环境变量-系统变量。在系统变量...
  • Centos使用alternatives切换Java版本

    千次阅读 2017-05-26 16:40:03
    这个工具的大概原理是在/usr/bin目录下创建一个符号链接,指向/etc/alternatives/ 下的的文件,而该文件依然是一个符号链接,举个栗子[plain] view plain copy [root@node1 mec]# ll /usr/bin/java lrwxr
  • Mac下实现Java版本切换

    千次阅读 2018-07-18 21:08:34
    如果每次安装卸载都太麻烦了,所以最好有一个可以在两个JDK版本中进行切换的方法。 1.java_home命令 java_home可以用来检测Mac系统安装的Java环境,并返回那个环境可以用来设置$JAVA_HOME的值。 # 详细见这里,...
  • JAVA JDK版本切换

    千次阅读 2015-11-04 16:54:13
    首先安装sun1.6,这里我安装的目录是/usr/java/jdk1.6.0_45 然后设置profile文件/etc/profile(文件的末尾添加该文件) sudo vim /etc/profile export JAVA_HOME=/usr/java/jdk1.6.0_45 export JRE_HOME=/usr/java...
  • 版本java共存和切换

    千次阅读 2018-06-19 11:41:00
    ​ 由于不同的项目编译依赖的java版本不同,很多时候需要在测试环境安装多版本jdk,方便不同版本的jdk进行切换。 一. 卸载 ​ 首先需要确认当前环境中是否已经安装了jdk(linux中很多时候会内嵌openjdk),如果...
  • update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令、哪个软件版本,比如,我们在系统中同时安装了open jdk和sun jdk两个版本,而我们又希望系统默认使用...
  • java中动态地切换当前的工作目录cwd

    千次阅读 2019-06-19 22:42:18
    java中动态地切换当前的工作目录: 原理:使用jnr来实现对本地库的调用。 说明: Java Native Interface(JNI) 编写Java本地代码的标准编程接口,实现了java与其它语言(c/c++等)的通信。 Java Native Access(JNA)...
  • java JDK版本切换(ubuntu)

    千次阅读 2011-10-14 16:12:56
    安装jdk5,jdk6,可以通过apt-get方式安装, android 2.3以上版本需要安装sun-java6-jdk $sudo apt-get install sun-java6-jdk android 2.2以下版本需要安装sun-java5-jdk
  • mac下多版本java JDK的安装与切换

    千次阅读 2019-07-08 16:18:28
    0 问题 之前macOS系统一直使用的时jdk10的环境,最近因为项目的原因需要换成jdk8。网上通用的办法都是通过修改bash_profile文件中修改jdk的环境变量,...JDK的安装步骤比较简单,直接在oracle官网选择对应的版本...
  • 当电脑上存在多个版本的JDK时,可能 会遇到想切换版本时无论你如何改JAVA_HOME的路径 进入cmd java -version 都无法得到最新设置的JDK版本 如果遇到类似以下信息 Registry key 'Software\JavaSoft\Java Runtime ...
  • java两种以上不同版本的jdk切换

    千次阅读 2017-05-12 16:15:05
    完美的解决方法就是,下载解压版的jdk,到网上搜多少位的不同jdk版本一搜一大堆,下载好之后只需要在环境变量修改JAVAHOME的值就行了,然后在dos窗口输入java -version就可以查看当前版本的jdk了 写博...
  • Java线程的6种状态及切换(透彻讲解)

    万次阅读 多人点赞 2016-12-24 16:57:03
    Java中线程的状态分为6种。 1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。 2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。 线程对象创建后,...
  • System.out.println("切换工作目录:" + result); System.out.println("当前工作目录:" + ftpClient.printWorkingDirectory()); 文件夹路径"/AA/BB"写成/AA/BB/"末尾多一个/也可以,其实多多少个/都无所谓,会自动...
  • linux下 更新 java版本

    千次阅读 2012-12-13 10:52:24
    linux安装的时候如果选择了java开发的话会默认安装当前linux内置的gil java版本  新点的linux安装的java版本大多为1.4 ... 进入终端查看当前java版本  [root@localhost sbin]# java -version java version "1.6.0
  • linux下更换java版本

    千次阅读 2008-12-30 20:43:00
    linux安装的时候如果选择了java开发的话会默认安装当前linux内置的gil java版本 新点的linux安装的java版本大多为1.4 有更老的系统自带的java版本为1.3根本不能满足我们程序开发的需要 进入终端查看当前java版本 ...
  • 1.JAVA_HOME中配置好相应版本的JDK位置 2.PATH中把%JAVA_HOME%/bin放最前面即可成功切换
  • Windows上切换java8和java11

    千次阅读 2019-09-21 15:03:12
    Windows上安装了java8和java11,时不时要切换,于是思考写行命令解决。思路是修改java_home变量。我的java_home变量是设置在系统级别的。 修改环境变量有2个命令,set和setx: set:临时修改普通的环境变量,只...
  • 网页上的双语切换java+jsp/html)

    千次阅读 2018-04-12 16:43:15
    我使用的切换是利用了java服务器的session来实现的(只有三个步骤,第三个步骤里面有4个操作,讲解非常详细) 1.建立两个roperties配置文件 language_en_US.properties language_en_CN.properties 其中angu
  • 通过环境变量修改java版本不生效

    万次阅读 2016-09-26 19:44:06
    本机依次安装了 jdk1.8、jdk1.6 和 jdk1.7 三个版本的 jdk,由于maven打包android程序...然后在命令行中执行 “java -version”,查看当前 java 版本,惊奇的发现竟然还是1.8。于是当即切换java1.7 的 bin 目录,
  • java 实现国际化 中英文语言切换

    热门讨论 2013-11-29 11:25:42
    java实现国际化中英文语言切换 java语言切换JSP国际化 java实现国际化中英文语言切换 java语言切换JSP国际化
  • Java升级那么快,多个版本如何灵活切换和管理?

    千次阅读 多人点赞 2019-11-18 08:40:29
    近两年,Java 版本升级频繁,感觉刚刚掌握 Java8,写本文时,已听到 java14 的消息,无论是尝鲜新特性(Java12 中 Collectors.teeing 超强功能使用),还是由于项目升级/兼容需要,我们可能都要面临管理多个 Java 版本...
  • 在修改JAVA_HOME的变量值后要一路确定到底,然后退出当前的cmd命令窗口环境变量才会生效 问题背景 公司项目中应用到的jdk环境为1.6,最近在家学习IntelliJ IDEA中sdk多环境配置时,想安装Jdk1....
  • 几乎所有平台的 Java 版本的发布,都涉及到 Java 语言本身和 JVM 的各个方面。那么对于 Java 7 来说,从 JSR 草稿中,我们得到 Java 7 的高层次的目标是: 兼容性 ― 任何在以前版本上运行的程序必须能不用做...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 304,399
精华内容 121,759
关键字:

切换当前java版本

java 订阅