vfox 的 Java 插件。
它通过 Foojay 查找并安装 31 个发行版的 JDK,包括 Temurin、Zulu、Liberica、Corretto、Microsoft、GraalVM 等。在 Linux loong64 上,则改从 Loongnix 归档安装。
先安装 vfox,然后执行下面的命令安装插件:
vfox add java要让 java 出现在 PATH 里,需要先把 vfox 挂载到 Shell,见 vfox 的快速入门。
vfox add java
vfox install java@21-tem
vfox use --global java@21-tem可以用下面的命令验证:
java -versionvfox search java tem 会列出 Temurin 的各个版本,在交互式终端里还可以直接选一个并安装。
版本写成 <版本>-<发行版>,例如 21.0.8-tem,后面加 -fx 表示带 JavaFX。不写发行版时得到的是 jdk.java.net 上的 OpenJDK,它的 17 只到 17.0.2,21 只到 21.0.2。详见 docs/zh-CN/versions.md。
| 简称 | 发行版 |
|---|---|
open |
jdk.java.net 上的 OpenJDK 构建,默认 |
tem |
Temurin(Eclipse Adoptium) |
zulu |
Zulu(Azul) |
librca |
Liberica(BellSoft) |
amzn |
Corretto(Amazon) |
ms |
Microsoft Build of OpenJDK |
oracle |
Oracle JDK |
sem |
Semeru(IBM) |
sapmchn |
SapMachine(SAP) |
kona |
Kona(腾讯) |
albba |
Dragonwell(阿里巴巴) |
bsg |
毕昇 JDK(华为) |
graal |
Oracle GraalVM |
graalce |
GraalVM 社区版 |
nik |
Liberica Native Image Kit(BellSoft) |
mandrel |
Mandrel(Red Hat) |
jb |
JetBrains Runtime |
trava |
TravaOpenJDK |
adpt、adptj9 |
AdoptOpenJDK,HotSpot 版和 OpenJ9 版 |
eliya |
Eliya JDK(Asymm Systems) |
ojdkbld |
OJDKBuild |
opnlgc |
OpenLogic OpenJDK |
rdht |
Red Hat build of OpenJDK |
semcrt |
Semeru 认证版(IBM) |
gln |
Gluon GraalVM |
grl8、grl11、grl16、grl17、grl19 |
基于 JDK 8 到 19 的 GraalVM CE |
lnxabi1、lnxabi2 |
Loongnix,仅限 Linux loong64 |
简称沿用 SDKMAN 的标识符,有几处不同:JetBrains Runtime 在 SDKMAN 里叫 jbr;AdoptOpenJDK 和 GraalVM CE 的虚拟机或 JDK 版本,SDKMAN 当时写在版本号里(11.0.10.j9-adpt、22.3.3.r17-grl),插件则给每种各起一个简称(adptj9、grl17)。Eliya、OJDKBuild、OpenLogic、Red Hat 和 Semeru 认证版在 SDKMAN 里没有标识符,简称是插件自己起的。全部差别以及每个发行版是什么,见 docs/zh-CN/distributions.md;最后一行见 docs/zh-CN/loongnix.md。
并非每个发行版都有 arm64、Alpine 或 Windows ARM 的构建。只有 Temurin、Zulu、Liberica、Microsoft 和 JetBrains Runtime 有 Windows ARM64 的构建,31 个发行版里有 11 个有 Alpine x64 的构建,7 个有 Alpine arm64 的构建。GraalVM 既没有 Windows ARM64,也没有 Alpine。完整的表格见 docs/zh-CN/platforms.md。
Zulu、Liberica、Liberica NIK 和 Corretto(只有 Java 8)提供内置 JavaFX 的构建,在发行版后面加 -fx 即可,比如 java@21-zulu-fx。详见 docs/zh-CN/javafx.md。
vfox 通过这个插件读取 SDKMAN 的 .sdkmanrc 里的 java= 一行,并选中已经安装的 JDK。详见 docs/zh-CN/sdkmanrc.md。
大多数发行版从 GitHub 下载。如果你那里下载很慢,执行 export VFOX_JAVA_GITHUB_MIRROR=https://gh-proxy.org/,这些下载就会经过镜像。详见 docs/zh-CN/mirror.md。
想知道你的平台上有哪些 JDK,可以自己去问 Foojay。docs/zh-CN/foojay.md 里有 Swagger UI 和查询命令。
插件的各种提示、代理设置和 JDK 的位置,见 docs/zh-CN/troubleshooting.md。
详见 docs/zh-CN/install-from-source.md。
插件的工作方式和修改方法见 docs/zh-CN/development.md,容器测试见 docs/zh-CN/e2e.md。
维护者在默认分支上执行 Actions → Plugin → Run workflow,填入不带 v 前缀的稳定版插件版本号即可发布。共享工作流会更新 metadata.lua,创建版本提交和标签,并把 ZIP 包和 manifest 发布到本仓库;不需要在本地打标签,也不需要额外的发布令牌。PR 只运行检查,PR 标题不再触发发布。
直接推送版本标签也可以发布,前提是 PLUGIN.version 已经与标签一致。发布失败时,重新运行失败的那个作业即可接着发布。
工作流引用的是共享的 @v1 发布工具,升级这个工具不会发布本插件。包的约定和首次接入的要求,见共享工作流的文档。