首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux使用多个版本jdk

在Linux系统中使用多个版本的JDK(Java Development Kit)可以通过多种方式实现,以下是一些常见的方法:

1. 使用update-alternatives命令

update-alternatives是Debian系Linux发行版(如Ubuntu)中的一个工具,可以用来管理多个版本的命令行工具。

安装多个JDK版本

假设你已经下载并解压了多个JDK版本到不同的目录,例如:

  • /usr/lib/jvm/java-8-openjdk-amd64
  • /usr/lib/jvm/java-11-openjdk-amd64

配置update-alternatives

代码语言:txt
复制
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac 1

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 2
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-11-openjdk-amd64/bin/javac 2

切换JDK版本

代码语言:txt
复制
sudo update-alternatives --config java
sudo update-alternatives --config javac

2. 使用环境变量

你可以通过设置环境变量来切换JDK版本。

配置环境变量

编辑~/.bashrc~/.zshrc文件,添加以下内容:

代码语言:txt
复制
export JAVA_8_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JAVA_11_HOME=/usr/lib/jvm/java-11-openjdk-amd64

export JAVA_HOME=$JAVA_8_HOME
export PATH=$JAVA_HOME/bin:$PATH

切换JDK版本

代码语言:txt
复制
export JAVA_HOME=$JAVA_11_HOME
export PATH=$JAVA_HOME/bin:$PATH

3. 使用SDKMAN!

SDKMAN!是一个用于管理多个软件开发工具包的并行版本的工具,支持Java、Groovy、Scala、Kotlin等。

安装SDKMAN!

代码语言:txt
复制
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

使用SDKMAN!安装和管理JDK

代码语言:txt
复制
sdk install java 8.0.292-open
sdk install java 11.0.11-open

sdk use java 8.0.292-open
sdk use java 11.0.11-open

应用场景

  • 多项目开发:不同的项目可能需要不同版本的JDK。
  • 测试和调试:在测试新版本的JDK时,可能需要保留旧版本以便对比。
  • 兼容性:某些旧的应用程序可能只支持特定版本的JDK。

优势

  • 灵活性:可以轻松切换不同版本的JDK,无需重新安装。
  • 隔离性:不同版本的JDK互不干扰,避免版本冲突。
  • 便捷性:通过工具管理多个版本,简化操作流程。

通过以上方法,你可以在Linux系统中灵活地管理和使用多个版本的JDK。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Windows 下同时安装多个版本的 JDK

由于不同的项目使用的 JDK 版本不一致,实际应用中会存在版本切换的问题 准备好两个版本的 JDK(更多个版本同理) 打开环境变量,新建或编辑三个 JAVA_HOME 变量名 值 JAVA_HOME...%JAVA8_HOME% JAVA8_HOME C:\Program Files\Java\jdk1.8.0_221 JAVA17_HOME C:\Program Files\Java\jdk-17.0.2...其中 JAVA_HOME 变量值修改为当前使用的版本号即可 Path 变量开始的位置添加 %JAVA_HOME%\bin 这一项,如果存在则无需添加,注意删除原来版本的路径配置 cmd 打开命令行...,输入 path ,查看第一条 跳转到该目录下,删除 java.exe javaw.exe javaws.exe 再次新建 cmd,输入命令 java -version 查看版本号,可以看到已经切换成功...如果需要更多个版本,比如三个版本的 JDK 切换,则在第一步的时候继续新建 JAVAxxx_HOME ,我们只要在第一个 JAVA_HOME 变量值的位置,修改为当前使用的版本号即可 %JAVAxxx_HOME

1.3K10
  • 多个版本的 JDK 配置环境变量

    常用jdk版本 常用的JDK版本包括: • Java 8 (Java 8, JDK 1.8):较为成熟稳定的一个版本,是JDK的一个重要长期支持版本(LTS),包含Lambda表达式、函数式接口、Stream...API、Option类、可重复注解等特性,在生产环境中使用非常广泛; • Java 11 (Java 11, JDK 1.11):增加了大量实用的新特性,包括新的 ZGC、云计算监控诊断、Http Client...JDK下载 官网:https://www.oracle.com/java/technologies/downloads 选择要下载的 JDK 版本和安装的系统环境,点击下载。...lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 测试 Win+R 打开 cmd 输入: java -version javac 安装多个版本...2、删除注册表文件 从注册表(windows+R 输入 regedit)中删除 JDK 的默认启动的版本。

    1K10

    JDK8和JDK17安装切换,IDEA配置多个版本JDK

    JAVA之父高斯林推荐我们用JDK17,请尽快离开JDK8。...如果你希望在命令行使用javac.exe等工具时,任意目录下都可以找到这个工具所在的目录,那么就需要配置环境变量,否则相关java命令只能在你安装的路径下执行,在别的目录执行都会提示 不是内部或外部命令...点击 我的电脑 =》右击 选择属性 =》高级系统设置 =》高级 =》环境变量 配置到系统变量里,系统变量针对计算机的用户都可以使用。...识别了,此时把Path中配置的环境变量上移到最顶部 优先级最高, 也可以把默认的环境变量删除 此时再查看JDK版本: 切回JDK17,只需修改Path环境变量即可: 打开DOS窗口,输入:java...-version IDEA中配置多个JDK版本 因目前还是以JDK8为主要开发,所以难免会切换JDK版本: 在IDEA中可以指定每个项目模块使用的JDK版本:

    5.3K50

    一台电脑怎么装多个不同版本的JDK?

    一个shi山项目必须使用JDK 1.8,另外一个新项目用的是JDK 17或者JDK 21(17/21均为LTS版本)。 这时候怎么办呢? 这需求是不是有点像变色龙? 依环境而改变颜色。...假设你平常用得最多的是JDK 21,那么别犹豫。直接把JDK 21设置成环境变量。 电脑上安装JDK 1.8,在需要的时候为单独项目单独配置(基本会涉及到IDEA,启动项目等等)。...二、使用框架 在Python中有个框架叫pyenv,其作用是通过命令行切换电脑上的Python版本。 偶然发现Java也有个类似的框架,叫jenv。遗憾的是jenv目前只支持MacOS和Linux。...在jenv的Issue中看到一个讨论,但没有结论() 值得一提的好消息是,一位大佬fork了jenv实现了一个Windows版本.. 坏消息是,Windows版本最新更新是一年前() so?...Windows建议直接使用方案一。 引用: 1. (jenv issue关于支持Windows的讨论): https://github.com/jenv/jenv/issues/35 2.

    11510

    JDK中Jshell简单使用(JDK9版本以上或者JDK9版本)

    重要提示:JDK9版本以上或者JDK9版本,才能使用 简介: Java Shell工具是JDK1.9出现的工具, Java Shell工具(JShell)是一个用于学习Java编程语言和Java代码原型的交互式工具...可以测试单个语句 十分简单的Java程序,省去了创建Java文件的过程 JShell的命令: 1.启动: jshell 我的是JDK11版本的 2.退出: /exit 3.简单使用: jshell...当前历史记录或上一个历史记录 (-restore) | /history | 您键入的内容的历史记录 | /help [|] | 获取有关使用...[|] | 获取有关使用 jshell 工具的信息 | /!...主题: | | intro | jshell 工具的简介 | id | 片段 ID 以及如何使用它们的说明 | shortcuts | 片段和命令输入提示, 信息访问以及

    57840
    领券