java - 如何在 Linux 中不同的 java 版本之间切换?
问题描述
我手动安装了 Java 8 并通过命令行 (open-jdk) 安装了 Java 11。我是 linux 的菜鸟,不知道如何在版本之间切换。
我运行以下命令来更改默认版本。
update-alternatives --config java
回报:
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 auto mode
1 /opt/java/jdk1.8.0_211/bin/java 1 manual mode
2 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 manual mode
和
update-alternatives --config javac
回报:
There is only one alternative in link group javac (providing /usr/bin/javac): /usr/lib/jvm/java-11-openjdk-amd64/bin/javac
Nothing to configure.
解决方案
您可以使用SDKMan,它允许我们做同样的事情,SDKMan 是一个免费使用的开源工具,它可以帮助我们安装和管理大约 29 个软件开发工具包的并行版本,例如 Java、Groovy、Scala、Kotlin 和 Ceylon。Ant、Gradle、Grails、Maven、SBT、Spark、Spring Boot、Vert.x。
它还自动设置_HOME
和PATH
环境变量。
您可以通过运行以下命令来安装 SDKMan
$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
您可以使用列出所有 Java 版本
$ sdk list java
您可以使用命令安装不同的 Java 版本,sdk install
例如
$ sdk install java 9.0.4-open
$ sdk install java 11.0.2-open
sdk use
您可以使用和命令在它们之间切换sdk default
,您可以在我的博客How to Install Multiple Versions of Java on the Same Machine中阅读更多相关信息。
推荐阅读
- tensorflow - 如何在张量流中计算 f1
- php - PHP 不会无缘无故发送消息
- c++11 - 是所有数据成员都初始化为 0 还是由自动调用的构造函数分配随机值?
- javascript - 如何使 Orbit Controls 在不同的轴上自动旋转?
- c++ - 如何使用 Opencv 在任何计算机上显示图像
- java - SQLite - 查询将日期时间与 WHERE 子句进行比较的任何行时出现日期时间格式的问题
- javascript - 如何防止在javascript / nodejs中的try...catch期间出现双重回调?
- c# - VideoPlayer 播放视频 10 秒后停止播放
- android - 是否有相当于 CPU Load 但对于 Android 而言,如果有,我该如何检查它?
- php - 如何在yii1中扩展CHttpSession类