您是顾问Velopper。您为几个客户工作。或者简单地说,您在空闲时间为雇主和一个或多个开源项目工作。
当您从开发项目转到另一个项目时,您当然必须更改所有工具和标识符...
更改git标识符,gnupg签名,ssh壁橱...更不用说您使用的工具的版本:java,nodejs或python的版本。
甚至还有构造工具的配置,它们必须像Maven或NPM一样更改。
从一个上下文到另一个上下文并不容易。
好消息:我已经暴露了几种解决方案来依靠这些需求,我想与您分享我的研究角色!
我建议您以每个提示的几个小目标项目的形式处理此操作。
java的gur vos版本
让我们开始接近拥有几个版本的Java的事实。
请小心我们不会考虑JavaAnté的版本
如果您是Linux Debian或其欺骗之一(尤其是Ubuntu),则在update-alternatives
甚至update-java-alternatives
等问题中有相当实用的工具。但是,这些解决方案位于一个系统中,我希望在研究中找到跨平台工具。
实际上,有很多工具可以找到其不同版本的Java:jEnv甚至Jabba。就我而言,我想专注于一个相当特色的工具:SDKMan。
SDKMAN是Apache 2.0许可下的开源软件。这是一个très actif sur GitHub项目。也可以通过le site Open Collective支持金融项目。
sdkman是不同Java版本的管理中心,但也是工具和其他链接技术。
我们还将能够使用SDKMAN收集其不同版本的Maven或Kotlin(我在个人标题上做)。
安装SDKMAN
要使用SDKMAN,您必须具有Linux,Windows(通过WSL)或MacOS系统。也可以将其安装在FreeBSD甚至Solaris上!
sdkman是命令行工具,他需要与您所宣布的命令行解释器进行交互。在这种情况下,他撒谎和zsh。
要安装SDKMAN,打开终端并键入以下命令:
curl -s "https://get.sdkman.io" | bash
Small 免责声明在这种类型的安装上,即使您邀请您充电并咨询https://get.sdkman.io
的内容,以了解脚本在盲目地委托给bash
之前做什么!你来到ð
根据您使用的命令行解释器,您的.bashrc
或.zshrc
文件将被修改以添加sdkman的sdk
命令。
还要注意,SDKMAN将相信您的用户报告的.sdkman
Rebutory Rotatory,我们不仅会找到sdk
工具,还可以找到Java,Maven或Kotlin的所有安装。
ted加载了您的Java版本
现在安装了SDKMAN,我们将使用它来安装您的Java版本。
要获得SDKMAN可用的Java版本列表,您必须在终端中键入以下命令:
$> sdk list java
SDKMAN提供可用于MSAGE架构的分布列表(您可以在 Multi-Platform Bainary Distributions 中看到MSAGE ABIAULS ici架构。)。
)我个人喜欢使用Java.net的OpenJDK的最后一个稳定版本。
在这些行所在的小时下,这是19.0.2-open
版本。
如果要安装此版本,则只需在终端中键入以下命令:
$> sdk install java 19.0.2-open
Downloading: java 19.0.2-open
In progress...
######################################################################### 100,0%
Repackaging Java 19.0.2-open...
Done repackaging...
Cleaning up residual files...
Installing: java 19.0.2-open
Done installing!
Do you want java 19.0.2-open to be set as default? (Y/n): Y
Setting java 19.0.2-open as default.
如上图所示,SDKMAN会问您是否要完成此新的紧密版本作为您的Java版本,您需要:Recondez Y
提供您的协议。
您可以验证您对以下命令的影响:
$> java -version
openjdk version "19.0.2" 2023-01-17
OpenJDK Runtime Environment (build 19.0.2+7-44)
OpenJDK 64-Bit Server VM (build 19.0.2+7-44, mixed mode, sharing)
安装其他版本的Java
暂时有好处,在我向您展示的内容之后,SDKMAN与Java的旧手动安装相比无能为力。
确切地说,我们现在将看到此工具的最大优势:安装多个版本的Java并将其传递到另一个版本的能力。
要列出可用Java版本的列表,请按照下一章的方式执行以下命令:
$> sdk list java
================================================================================
Available Java Versions for macOS ARM 64bit
================================================================================
Vendor | Use | Version | Dist | Status | Identifier
--------------------------------------------------------------------------------
Corretto | | 19.0.2 | amzn | | 19.0.2-amzn
| | 19.0.1 | amzn | | 19.0.1-amzn
| | 17.0.6 | amzn | | 17.0.6-amzn
| | 17.0.5 | amzn | | 17.0.5-amzn
| | 11.0.18 | amzn | | 11.0.18-amzn
| | 11.0.17 | amzn | | 11.0.17-amzn
| | 8.0.362 | amzn | | 8.0.362-amzn
| | 8.0.352 | amzn | | 8.0.352-amzn
Gluon | | 22.1.0.1.r17 | gln | | 22.1.0.1.r17-gln
| | 22.1.0.1.r11 | gln | | 22.1.0.1.r11-gln
GraalVM | | 22.3.r19 | grl | | 22.3.r19-grl
| | 22.3.r17 | grl | | 22.3.r17-grl
| | 22.3.r11 | grl | | 22.3.r11-grl
| | 22.3.1.r19 | grl | | 22.3.1.r19-grl
| | 22.3.1.r17 | grl | | 22.3.1.r17-grl
| | 22.3.1.r11 | grl | | 22.3.1.r11-grl
| | 22.2.r17 | grl | | 22.2.r17-grl
| | 22.2.r11 | grl | | 22.2.r11-grl
| | 22.1.0.r17 | grl | | 22.1.0.r17-grl
| | 22.1.0.r11 | grl | | 22.1.0.r11-grl
Java.net | | 21.ea.8 | open | | 21.ea.8-open
| | 21.ea.7 | open | | 21.ea.7-open
| | 21.ea.6 | open | | 21.ea.6-open
| | 21.ea.5 | open | | 21.ea.5-open
| | 21.ea.4 | open | | 21.ea.4-open
| | 20.ea.34 | open | | 20.ea.34-open
| | 20.ea.33 | open | | 20.ea.33-open
| | 20.ea.32 | open | | 20.ea.32-open
| | 20.ea.31 | open | | 20.ea.31-open
| | 20.ea.30 | open | | 20.ea.30-open
| >>> | 19.0.2 | open | installed | 19.0.2-open
| | 19.0.1 | open | | 19.0.1-open
Liberica | | 19.0.2.fx | librca | | 19.0.2.fx-librca
| | 19.0.2 | librca | | 19.0.2-librca
| | 19.0.1.fx | librca | | 19.0.1.fx-librca
| | 19.0.1 | librca | | 19.0.1-librca
| | 17.0.6.fx | librca | | 17.0.6.fx-librca
| | 17.0.6 | librca | | 17.0.6-librca
| | 17.0.5.fx | librca | | 17.0.5.fx-librca
| | 17.0.5 | librca | | 17.0.5-librca
| | 11.0.18.fx | librca | | 11.0.18.fx-librca
| | 11.0.18 | librca | | 11.0.18-librca
| | 11.0.17.fx | librca | | 11.0.17.fx-librca
| | 11.0.17 | librca | | 11.0.17-librca
| | 8.0.362.fx | librca | | 8.0.362.fx-librca
| | 8.0.362 | librca | | 8.0.362-librca
| | 8.0.352.fx | librca | | 8.0.352.fx-librca
| | 8.0.352 | librca | | 8.0.352-librca
Liberica NIK | | 22.3.r17 | nik | | 22.3.r17-nik
| | 22.3.r11 | nik | | 22.3.r11-nik
| | 22.3.1.r17 | nik | | 22.3.1.r17-nik
| | 22.3.1.r11 | nik | | 22.3.1.r11-nik
| | 22.2.r17 | nik | | 22.2.r17-nik
| | 22.2.r11 | nik | | 22.2.r11-nik
Microsoft | | 17.0.6 | ms | | 17.0.6-ms
| | 17.0.5 | ms | | 17.0.5-ms
| | 11.0.18 | ms | | 11.0.18-ms
| | 11.0.17 | ms | | 11.0.17-ms
Oracle | | 19.0.2 | oracle | | 19.0.2-oracle
| | 19.0.1 | oracle | | 19.0.1-oracle
| | 17.0.6 | oracle | | 17.0.6-oracle
| | 17.0.5 | oracle | | 17.0.5-oracle
SapMachine | | 19.0.2 | sapmchn | | 19.0.2-sapmchn
| | 19.0.1 | sapmchn | | 19.0.1-sapmchn
| | 17.0.6 | sapmchn | | 17.0.6-sapmchn
| | 17.0.5 | sapmchn | | 17.0.5-sapmchn
| | 11.0.18 | sapmchn | | 11.0.18-sapmchn
| | 11.0.17 | sapmchn | | 11.0.17-sapmchn
Semeru | | 18.0.2 | sem | | 18.0.2-sem
| | 17.0.5 | sem | | 17.0.5-sem
| | 17.0.4.1 | sem | | 17.0.4.1-sem
| | 11.0.17 | sem | | 11.0.17-sem
| | 11.0.16.1 | sem | | 11.0.16.1-sem
Temurin | | 19.0.2 | tem | | 19.0.2-tem
| | 19.0.1 | tem | | 19.0.1-tem
| | 17.0.6 | tem | | 17.0.6-tem
| | 17.0.5 | tem | | 17.0.5-tem
| | 11.0.18 | tem | | 11.0.18-tem
| | 11.0.17 | tem | | 11.0.17-tem
Zulu | | 19.0.2 | zulu | | 19.0.2-zulu
| | 19.0.2.fx | zulu | | 19.0.2.fx-zulu
| | 19.0.1 | zulu | | 19.0.1-zulu
| | 19.0.1.fx | zulu | | 19.0.1.fx-zulu
| | 17.0.6 | zulu | | 17.0.6-zulu
| | 17.0.6.fx | zulu | | 17.0.6.fx-zulu
| | 17.0.5 | zulu | | 17.0.5-zulu
| | 17.0.5.fx | zulu | | 17.0.5.fx-zulu
| | 11.0.18 | zulu | | 11.0.18-zulu
| | 11.0.18.fx | zulu | | 11.0.18.fx-zulu
| | 11.0.17 | zulu | | 11.0.17-zulu
| | 11.0.17.fx | zulu | | 11.0.17.fx-zulu
| | 8.0.362 | zulu | | 8.0.362-zulu
| | 8.0.362.fx | zulu | | 8.0.362.fx-zulu
| | 8.0.352 | zulu | | 8.0.352-zulu
| | 8.0.352.fx | zulu | | 8.0.352.fx-zulu
================================================================================
Omit Identifier to install default version 17.0.6-tem:
$ sdk install java
Use TAB completion to discover available versions
$ sdk install java [TAB]
Or install a specific version by Identifier:
$ sdk install java 17.0.6-tem
Hit Q to exit this list view
================================================================================
(END)
您可以清楚地注意到,这些是ARM 64BITS MACOS体系结构的版本(我当前使用MacBook Air M2)...并且有很多 < /strong>。
根据不同的供应商,我今天不会让您比较对Java的夹具的防御(也许会成为未来文章的一部分?),但是我©我都使用我的 no Bleeding Edge < /em>,Zulu。 在这种情况下,我喜欢Zulu的版本是compilateur JIT Falcon basé sur LLVM和garbage collector C4。 在我工作的客户中,我们找到了针对Java 8、11和最近17的项目。 i因此,使用以下命令安装了 这次,与第一次不同,我已经使用此版本的Java呈现了版本。 对于 您会看到您帖子上安装的Java的最后三个LTS版本! 要更改当前版本的Java,您将必须使用以下命令(此处使用 当前版本的小估算使得可以确认操作的正确功能: 可能使用SDKMAN记录特定项目的Java的当前版本。 想象一下,您的客户有一个仍然使用Java 8的客户的旧版项目。 要将此版本的Java与上述项目相关联,您将必须转到此项目,更改Java的版本并启动 现在,使用这种配置,将足以在相关的reaire中启动 现在更好:可以确保Java版本更改时,您会在输入该配置项目的补救措施时自动! 为此,您必须将SDKMAN的配置修改为 可以使用以下命令在MacOS上的一行中这样做: 在gnu linux下,这更简单: 现在,您在Java 8中项目的反应中有一个小转弯,并且更改是自动的(当心您必须打开一个新终端,以使其有效): 在Allité中,我并没有真正使用SDKMAN在几个版本的Maven或Kotlin之间进行杂耍
如果像我一样,您不在乎Maven的版本,您将要从它是最后一个到迄今为止的那一刻,只需在终端中键入下一个订单: 对于kotlin有点不同。 这种语言相当一百,因此运气(或运气不好)必须具有多个版本的Kotlin。 但是,您可以像Java一样知道具有以下命令的不同Kotlin版本: 您还会注意到我在我的帖子上死了最后一个版本(每小时筛选这些行的 要在他的最后一个版本中安装Kotlin,您只需在命令行上输入: 具有像 要从一个版本到另一个版本,它与我们使用Java学到的东西相同。 在我的下一篇文章中,我将向您解释如何更改为“ applight aveptory 17.0.6-zulu
版本:
$> sdk install java 17.0.6-zulu
Downloading: java 17.0.6-zulu
In progress...
########################################################################## 100,0%
Repackaging Java 17.0.6-zulu...
Done repackaging...
Installing: java 17.0.6-zulu
Done installing!
Do you want java 17.0.6-zulu to be set as default? (Y/n): n
11.0.18-zulu
和8.0.362-zulu
版本而言,欺骗并不是很大不同:
$> sdk install java 11.0.18-zulu
(...)
$> sdk install java 8.0.362-zulu
(...)
从一个版本的Java转到另一个版本
17.0.6-zulu
版本说明):
$> sdk use java 17.0.6-zulu
Using java version 17.0.6-zulu in this shell.
$> java -version
openjdk version "17.0.6" 2023-01-17 LTS
OpenJDK Runtime Environment Zulu17.40+19-CA (build 17.0.6+10-LTS)
OpenJDK 64-Bit Server VM Zulu17.40+19-CA (build 17.0.6+10-LTS, mixed mode, sharing)
Java版本的自动更改
sdk env init
命令:
~ $> cd devel/mon_client/projet_java8
~/devel/mon_client/projet_java8 $> sdk use java 8.0.362-zulu
Using java version 8.0.362-zulu in this shell.
~/devel/mon_client/projet_java8 $> sdk env init
.sdkmanrc created.
~/devel/mon_client/projet_java8 $> java -version
openjdk version "1.8.0_362"
OpenJDK Runtime Environment (Zulu 8.68.0.19-CA-macos-aarch64) (build 1.8.0_362-b08)
OpenJDK 64-Bit Server VM (Zulu 8.68.0.19-CA-macos-aarch64) (build 25.362-b08, mixed mode)
sdk env
命令,以便将正确的Java版本分为切片!
~ $> cd devel/mon_client/projet_java8
~/devel/mon_client/projet_java8 $> sdk env
Using java version 8.0.362-zulu in this shell.
~/.sdkman/etc/config
文件,并将配置变量分配给true
。
$> sed 's/sdkman_auto_env=false/sdkman_auto_env=true/g' ~/.sdkman/etc/config > /tmp/sdkman-cfg && cat /tmp/sdkman-cfg > ~/.sdkman/etc/config
$> sed -i 's/sdkman_auto_env=false/sdkman_auto_env=true/g' ~/.sdkman/etc/config
~ $> cd devel/mon_client/projet_java8
Using java version 8.0.362-zulu in this shell.
Maven et de Kotlin的gur vos版本
安装他们胃
$> sdk install maven
Downloading: maven 3.8.7
In progress...
########################################################################## 100,0%
Installing: maven 3.8.7
Done installing!
安装De Kotlin
$> sdk list kotlin
================================================================================
Available Kotlin Versions
================================================================================
> * 1.8.0 1.4.0 1.2.60 1.1.3
1.7.21 1.3.72 1.2.51 1.1.2-5
1.7.20 1.3.71 1.2.50 1.1.2-2
1.7.10 1.3.70 1.2.41 1.1.2
1.7.0 1.3.61 1.2.40 1.1.1
1.6.21 1.3.60 1.2.31 1.1
1.6.20 1.3.50 1.2.30 1.0.7
1.6.10 1.3.41 1.2.21 1.0.6
1.6.0 1.3.40 1.2.20 1.0.5-2
1.5.31 1.3.31 1.2.10 1.0.5
1.5.30 1.3.30 1.2.0 1.0.4
1.5.21 1.3.21 1.1.61 1.0.3
1.5.10 1.3.20 1.1.60 1.0.2
1.5.0 1.3.11 1.1.51 1.0.1-2
1.4.31 1.3.10 1.1.50 1.0.1-1
1.4.30 1.3.0 1.1.4-3 1.0.1
1.4.21 1.2.71 1.1.4-2 1.0.0
1.4.20 1.2.70 1.1.4
1.4.10 1.2.61 1.1.3-2
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
(END)
1.8.0
)。
$> sdk install kotlin
1.2.71
版本这样的太空版本:
$> sdk install kotlin 1.2.71
还有其余的?
如果您有意,请与我联系或在LinkedIn上关注我!
我也想迅速地向您解释我是谁ð
我叫Hoani Cross。我来自法语polynue。
它一直是计算机(我开始在CP中开发,大约40年前),我在许多环境中都被掌握了很多位置,直到DSI的位置...
今天,我是法国节点SFEIR的经理和后端建筑师。 Sfeir的特殊性之一是管理人员也是对客户的任务豁免。我们了解员工正在管理和相信我的工作,这是一个神圣的!最后,在Sfeir上联系我们所有人的是对计算机科学的热情……她已经关注我已有40年了,同样告诉您我跌倒在正确的位置!
。此外,如果您充满激情。>
最后,我也是Geek & Rentable博客的适当性,我的访问我建议您。有了这个博客,我想帮助冰球运动员或其他科技演员,充满热情,但不幸地误解了他们的工作状况甚至职业。
ã