Skip to content

Commit 457de66

Browse files
authored
docs: split the README into topic pages and add Chinese translations (#102)
1 parent 7ef178a commit 457de66

27 files changed

Lines changed: 2246 additions & 422 deletions

‎README.md‎

Lines changed: 61 additions & 198 deletions
Large diffs are not rendered by default.

‎README_CN.md‎

Lines changed: 63 additions & 222 deletions
Original file line numberDiff line numberDiff line change
@@ -2,266 +2,107 @@
22

33
[中文](README_CN.md) | [English](README.md)
44

5-
> Java plugin for [vfox](https://github.com/version-fox/vfox)
5+
[vfox](https://vfox.dev/) 的 Java 插件。
66

7-
支持多种JDK发行版,如:Oracle、Graalvm、Eclipse等。
7+
它通过 [Foojay](https://foojay.io/) 查找并安装 18 个发行版的 JDK,包括 Temurin、Zulu、Liberica、Corretto、Microsoft、GraalVM 等。在 Linux loong64 上,则改从 Loongnix 归档安装。
88

9-
# 使用
9+
## 安装
1010

11-
**参数格式**: `x.y.z-distribution` 或 `x.y.z-distribution-fx` (带 JavaFX 的版本)
11+
先安装 [vfox](https://github.com/version-fox/vfox),然后执行下面的命令安装插件:
1212

13-
```shell
14-
# 添加插件
13+
```bash
1514
vfox add java
16-
17-
# 添加运行时
18-
vfox install java@x.y.z # 默认使用openjdk
19-
vfox install java@x.y.z-graal # 使用graalvm
20-
21-
# 安装带 JavaFX 的版本 (在发行版名称后添加 -fx 后缀)
22-
vfox install java@21.0.5-zulu-fx # 带 JavaFX 的 Zulu
23-
vfox install java@21.0.5-librca-fx # 带 JavaFX 的 Liberica
24-
25-
# 查看所有可用版本
26-
vfox search java all # 查看所有sdk版本
27-
vfox search java # 查看所有openjdk版本
28-
vfox search java graal # 查看所有graalvm版本
29-
```
30-
31-
## 按发行版选择并安装
32-
33-
在交互终端中运行 `vfox search java tem`,即可从 Temurin 版本列表中选择一个版本并安装;在非交互终端中,该命令只输出版本列表。也可以将 `tem` 替换为 `zulu` 等发行版标识。
34-
35-
已知版本时,使用 `vfox install java@17.0.17-tem`。`install` 的空格分隔参数用于指定多个 SDK,因此 `vfox install java tem` 不会将 `tem` 作为 Java 发行版筛选条件。
36-
37-
## 龙架构(Linux)
38-
39-
在 Linux `loong64` 上,`vfox search java`(或 `vfox search java loongnix`)从 [Loongnix 官方归档](https://ftp.loongnix.cn/Java/)列出 JDK。其他架构继续使用 Foojay。
40-
41-
请按操作系统选择 ABI,插件不会自动猜测:
42-
43-
- `lnxabi1` / `loongnix_abi1`:Linux 4.19 UAPI 构建,适用于 Loongnix 20、Loongnix Server 8.4 等系统。
44-
- `lnxabi2` / `loongnix_abi2`:Linux 5.10 UAPI 构建,上游文件名标记为 `glibc2.34`,适用于 Debian 12、openEuler 等系统。
45-
46-
请核对[上游兼容性说明](https://www.loongnix.cn/zh/api/java/),不能仅凭当前内核版本选择 ABI。该源提供 glibc 构建,不提供 musl 构建。
47-
48-
```shell
49-
vfox search java lnxabi2
50-
vfox install java@21-lnxabi2-fx # 匹配最新的 Java 21,带 JavaFX,使用 ABI2
51-
vfox install java@21.0.12+8-lnxabi2-fx
52-
```
53-
54-
版本号采用 Java 版本及构建号,不是 Loongson 发行版本号。切换版本时保留 ABI 和 JavaFX 后缀。仅支持归档中的正式版 LoongArch tar 包,排除 MIPS 包;JavaFX 构建需使用 `-fx`。直接安装时必须明确 ABI,从搜索结果选择安装则会自动带上该标识。
55-
56-
## JavaFX 支持
57-
58-
部分发行版提供了捆绑 JavaFX 的 JDK 版本。这些版本在版本列表中会在发行版名称后显示 `-fx` 后缀,并在备注中标注 "JavaFX"。安装带 JavaFX 的版本时,需要在发行版名称后添加 `-fx`:
59-
60-
```shell
61-
# 查看版本列表 (带 JavaFX 的版本会显示 -fx 后缀)
62-
vfox search java zulu
63-
# 示例输出:
64-
# 21.0.5-zulu
65-
# 21.0.5-zulu-fx # JavaFX
66-
# 17.0.13-zulu
67-
# 17.0.13-zulu-fx # JavaFX
68-
69-
# 安装带 JavaFX 的版本
70-
vfox install java@21.0.5-zulu-fx
71-
```
72-
73-
# 支持的JDK发行版
74-
75-
> Thanks [SDKMAN](https://sdkman.io/jdks)!
76-
77-
## Bisheng (Huawei)
78-
79-
BiSheng JDK 是华为 JDK 的开源版本,源自 OpenJDK,受益于华为研发团队在解决服务相关挑战方面的丰富经验,已在 500 多款华为产品中使用。作为
80-
OpenJDK 的下游产品,它是面向生产环境的高性能发行版,专门解决华为应用中的性能和稳定性问题。毕升JDK在优化ARM架构性能和稳定性方面表现出色,在大数据应用场景中效果更佳。其主要目标是为
81-
Java 开发人员提供一个稳定、高性能的 JDK,尤其是在 ARM 架构上表现出色。
82-
83-
```shell
84-
$ vfox install java@x.y.z-bsg
85-
$ vfox search java bsg
86-
```
87-
88-
## Corretto (Amazon)
89-
90-
亚马逊 Corretto 是开放 Java 开发工具包(OpenJDK)的无成本、多平台、生产就绪发行版。Corretto
91-
提供长期支持,包括性能增强和安全修复。亚马逊内部在数千个生产服务上运行 Corretto,Corretto 已通过认证,与 Java SE 标准兼容。使用
92-
Corretto,您可以在 Linux、Windows 和 macOS 等流行的操作系统上开发和运行 Java 应用程序。
93-
94-
```shell
95-
$ vfox install java@x.y.z-amzn
96-
$ vfox search java amzn
97-
```
98-
99-
## Dragonwell (Alibaba)
100-
101-
作为 OpenJDK 的下游版本,Dragonwell 是阿里巴巴内部的 OpenJDK 实现。它针对在 10 万台以上服务器上运行的在线电子商务、金融和物流应用程序进行了优化。阿里巴巴
102-
Dragonwell 是在极端扩展条件下运行这些分布式 Java 应用程序的引擎。
103-
104-
```shell
105-
$ vfox install java@x.y.z-albba
106-
$ vfox search java albba
107-
```
108-
109-
## GraalVM (Oracle)
110-
111-
Oracle GraalVM 是 Oracle 推出的免费 GraalVM 发行版,基于 Oracle JDK,包含高性能 Graal JIT 编译器。GraalVM 可将 Java
112-
应用程序提前编译成独立的二进制文件,这些二进制文件可立即启动、快速扩展并使用更少的计算资源。Oracle GraalVM Native Image
113-
提供的高级功能包括 G1 GC、SBOM 以及性能和大小优化。它还使在 Java 应用程序中嵌入 Python、JavaScript、Ruby 和其他语言成为可能。
114-
115-
```shell
116-
$ vfox install java@x.y.z-graal
117-
$ vfox search java graal
118-
```
119-
120-
## GraalVM (GraalVM Community)
121-
122-
GraalVM CE 是 GraalVM 的开源发行版,基于 OpenJDK,包含高性能 Graal JIT 编译器。GraalVM 可以将 Java
123-
应用程序提前编译成独立的二进制文件,这些二进制文件可以立即启动、快速扩展并使用更少的计算资源。它还可以将
124-
Python、JavaScript、Ruby 和其他语言嵌入 Java 应用程序。
125-
126-
```shell
127-
$ vfox install java@x.y.z-graalce
128-
$ vfox search java graalce
129-
```
130-
131-
## Java SE Development Kit (Oracle)
132-
133-
这个专有的 Java 开发工具包是 Oracle 公司以二进制产品形式发布的 Java 平台标准版的实现,面向 Linux、macOS 或 Windows 上的
134-
Java 开发人员。JDK 包括一个私有 JVM 和其他一些资源,用于完成 Java 应用程序的开发。它根据 Oracle 免收费条款和条件许可证发布。
135-
136-
```shell
137-
$ vfox install java@x.y.z-oracle
138-
$ vfox search java oracle
13915
```
14016

141-
## Kona (Tencent)
17+
要让 `java` 出现在 `PATH` 里,需要先把 vfox 挂载到 Shell,见 vfox 的[快速入门](https://vfox.dev/zh-hans/guides/quick-start.html)。
14218

143-
Tencent Kona 是 OpenJDK 的免费、多平台和生产就绪发行版,提供长期支持(LTS)版本。它是腾讯内部默认的 JDK,用于云计算、大数据和其他众多
144-
Java 应用程序。
145-
146-
```shell
147-
$ vfox install java@x.y.z-kona
148-
$ vfox search java kona
149-
```
19+
### 示例
15020

151-
## Liberica (Bellsoft)
152-
153-
Liberica 是 100% 的开源 Java 实现。它由 BellSoft 参与开发的 OpenJDK 构建,经过全面测试,并通过了 OpenJDK 许可提供的
154-
JCK。Liberica 的所有支持版本还包含 JavaFX。
155-
156-
```shell
157-
$ vfox install java@x.y.z-librca
158-
$ vfox search java librca
21+
```bash
22+
vfox add java
23+
vfox install java@21-tem
24+
vfox use --global java@21-tem
15925
```
16026

161-
## Liberica NIK (Bellsoft)
27+
未发布:0.6.1(写这篇文档时最新的发布版)在这里装的是 `21+35-tem`,随后 `vfox use --global java@21-tem` 会报 `java@21-tem is not installed`。请改用 `vfox install` 打印出的名字,或者[从源码安装](docs/zh-CN/install-from-source.md)。
16228

163-
Liberica Native Image Kit 是一款实用工具,可在封闭世界假设下将基于 JVM 的应用程序提前转换为完全编译的本地可执行文件,启动时间几乎为瞬间。该工具兼容各种平台,包括基于轻量级
164-
musl 的 Alpine Linux,可优化资源消耗并最大限度地减少静态占用空间。
29+
可以用下面的命令验证:
16530

166-
```shell
167-
$ vfox install java@x.y.z-nik
168-
$ vfox search java nik
31+
```bash
32+
java -version
16933
```
17034

171-
## Mandrel (Red Hat)
35+
`vfox search java tem` 会列出 Temurin 的各个版本,在交互式终端里还可以直接选一个并安装。
17236

173-
Mandrel 专注于 GraalVM 的本地镜像组件,目的是为 Quarkus 用户提供为其应用程序生成本地镜像的简便方法。使用 Quarkus
174-
的开发人员应该能够从 Java 源代码一路开发到在 Linux 上运行的精益、原生、依赖平台的应用程序。这种能力对于在云原生应用程序开发模型中部署到容器中至关重要。
37+
只存在于 `main`、还没进入最新发布版的行为,在下面各页里标有“未发布”。完整列表见 [docs/zh-CN/changes.md](docs/zh-CN/changes.md),想直接用上 `main`,见 [docs/zh-CN/install-from-source.md](docs/zh-CN/install-from-source.md)。
17538

176-
```shell
177-
$ vfox install java@x.y.z-mandrel
178-
$ vfox search java mandrel
179-
```
39+
## 版本与命名
18040

181-
## OpenJDK (jdk.java.net)
41+
版本写成 `<版本>-<发行版>`,例如 `21.0.8-tem`,后面加 `-fx` 表示带 JavaFX。不写发行版时得到的是 jdk.java.net 上的 OpenJDK,它的 17 只到 17.0.2,21 只到 21.0.2。详见 [docs/zh-CN/versions.md](docs/zh-CN/versions.md)。
18242

183-
OpenJDK(开放式 Java 开发工具包)是 Java 平台标准版(Java SE)的免费开源实现。它是 Sun Microsystems 于 2006 年开始努力的成果。该实现采用
184-
GNU 通用公共许可证(GNU GPL)第 2 版许可,但有一个链接例外。如果没有 GPL 链接例外,链接到 Java 类库的组件将受 GPL
185-
许可证条款的约束。OpenJDK 是 Java SE 自第 7 版起的官方参考实现。
43+
## 发行版
18644

187-
```shell
188-
$ vfox install java@x.y.z-open
189-
$ vfox search java open
190-
```
45+
| 简称 | 发行版 |
46+
| --- | --- |
47+
| `open` | jdk.java.net 上的 OpenJDK 构建,默认 |
48+
| `tem` | Temurin(Eclipse Adoptium) |
49+
| `zulu` | Zulu(Azul) |
50+
| `librca` | Liberica(BellSoft) |
51+
| `amzn` | Corretto(Amazon) |
52+
| `ms` | Microsoft Build of OpenJDK |
53+
| `oracle` | Oracle JDK |
54+
| `sem` | Semeru(IBM) |
55+
| `sapmchn` | SapMachine(SAP) |
56+
| `kona` | Kona(腾讯) |
57+
| `albba` | Dragonwell(阿里巴巴) |
58+
| `bsg` | 毕昇 JDK(华为) |
59+
| `graal` | Oracle GraalVM |
60+
| `graalce` | GraalVM 社区版 |
61+
| `nik` | Liberica Native Image Kit(BellSoft) |
62+
| `mandrel` | Mandrel(Red Hat) |
63+
| `jb` | JetBrains Runtime |
64+
| `trava` | TravaOpenJDK |
65+
| `lnxabi1`、`lnxabi2` | Loongnix,仅限 Linux loong64 |
19166

192-
## OpenJDK (Microsoft)
67+
每个发行版是什么,见 [docs/zh-CN/distributions.md](docs/zh-CN/distributions.md);最后一行见 [docs/zh-CN/loongnix.md](docs/zh-CN/loongnix.md)。
19368

194-
OpenJDK 的 Microsoft Build 是 OpenJDK 的免费发行版,它是开源的,任何人都可以免费在任何地方部署。它包括 MacOS、Linux 和
195-
Windows x64 服务器和桌面环境上 Java 11 的长期支持 (LTS) 二进制文件,以及 Linux 和 Windows 上的
196-
AArch64/ARM64。微软还发布了适用于所有三大操作系统以及 x64 和 AArch64 (M1/ARM64) 体系结构的 Java 16 二进制文件。
69+
## 平台
19770

198-
```shell
199-
$ vfox install java@x.y.z-ms
200-
$ vfox search java ms
201-
```
71+
并非每个发行版都有 arm64、Alpine 或 Windows ARM 的构建。只有 Temurin、Zulu、Liberica、Microsoft 和 JetBrains Runtime 有 Windows ARM64 的构建,18 个发行版里有 10 个有 Alpine x64 的构建,7 个有 Alpine arm64 的构建。GraalVM 既没有 Windows ARM64,也没有 Alpine。完整的表格见 [docs/zh-CN/platforms.md](docs/zh-CN/platforms.md)。
20272

203-
## SapMachine (SAP)
73+
## JavaFX
20474

205-
SapMachine 是 OpenJDK 项目的下游版本。它用于为希望使用 OpenJDK 运行其应用程序的 SAP 客户和合作伙伴构建和维护 SAP 支持版本的
206-
OpenJDK。SAP 致力于确保 Java 平台的持续成功。
75+
Zulu、Liberica、Liberica NIK 和 Corretto(只有 Java 8)提供内置 JavaFX 的构建,在发行版后面加 `-fx` 即可,比如 `java@21-zulu-fx`。详见 [docs/zh-CN/javafx.md](docs/zh-CN/javafx.md)。
20776

208-
```shell
209-
$ vfox install java@x.y.z-sapmchn
210-
$ vfox search java sapmchn
211-
```
77+
## `.sdkmanrc`
21278

213-
## Semeru (IBM)
79+
vfox 通过这个插件读取 SDKMAN 的 `.sdkmanrc` 里的 `java=` 一行,并选中已经安装的 JDK。详见 [docs/zh-CN/sdkmanrc.md](docs/zh-CN/sdkmanrc.md)。
21480

215-
Semeru Runtimes 使用 OpenJDK 的类库和 Eclipse OpenJ9 Java 虚拟机,使开发人员能够构建和部署 Java
216-
应用程序,这些应用程序启动迅速,性能卓越,同时占用内存较少。
81+
## 查询 Foojay
21782

218-
```shell
219-
$ vfox install java@x.y.z-sem
220-
$ vfox search java sem
221-
```
83+
想知道你的平台上有哪些 JDK,可以自己去问 Foojay。[docs/zh-CN/foojay.md](docs/zh-CN/foojay.md) 里有 Swagger UI 和查询命令。
22284

223-
## Temurin (Eclipse)
85+
## 问题排查
22486

225-
Eclipse Adoptium Temurin™ 项目的前身是 AdoptOpenJDK,该项目提供代码和流程,支持构建运行时二进制文件和相关技术,这些二进制文件和技术具有高性能、企业级、跨平台、开源许可和经过
226-
Java SE TCK 测试,可在整个 Java 生态系统中普遍使用。
87+
插件的各种提示、代理设置和 JDK 的位置,见 [docs/zh-CN/troubleshooting.md](docs/zh-CN/troubleshooting.md)。
22788

228-
```shell
229-
$ vfox install java@x.y.z-tem
230-
$ vfox search java tem
231-
```
232-
233-
## Trava (Trava)
89+
## 从源码安装
23490

235-
TravaOpenJDK 是专为开发人员设计的 OpenJDK。它基于 dcevm 并使用集成的 HotswapAgent,因此允许在运行时通过方法和字段的添加或更新对类进行高级热交换。
91+
详见 [docs/zh-CN/install-from-source.md](docs/zh-CN/install-from-source.md)。
23692

237-
```shell
238-
$ vfox install java@x.y.z-trava
239-
$ vfox search java trava
240-
```
93+
## 开发
24194

242-
## Zulu (Azul Systems)
95+
插件的工作方式和修改方法见 [docs/zh-CN/development.md](docs/zh-CN/development.md),容器测试见 [docs/zh-CN/e2e.md](docs/zh-CN/e2e.md)。
24396

244-
Azul Zulu Builds of OpenJDK 是无成本、生产就绪的开源、经过 TCK 测试和认证的 OpenJDK 发行版。它们适用于各种硬件平台和操作系统,并与特殊要求兼容,如精简版
245-
JRE 和构建,包括 OpenJFX 和 Coordinated Restore at Checkpoint (CRaC)。它们作为 Azul Platform Core 的一部分得到支持,Azul
246-
Platform Core 可提供稳定的安全更新,以便快速、可靠地部署到生产中,并提供以解决方案为导向的工程协助。
97+
## 发布这个插件
24798

248-
```shell
249-
$ vfox install java@x.y.z-zulu
250-
$ vfox search java zulu
251-
```
252-
253-
## Jetbrains
254-
255-
```shell
256-
$ vfox install java@x.y.z-jb
257-
$ vfox search java jb
258-
```
99+
维护者在默认分支上执行 **Actions → Plugin → Run workflow**,填入不带 `v` 前缀的稳定版插件版本号即可发布。共享工作流会更新 `metadata.lua`,创建版本提交和标签,并把 ZIP 包和 manifest 发布到本仓库;不需要在本地打标签,也不需要额外的发布令牌。PR 只运行检查,PR 标题不再触发发布。
259100

260-
# 感谢
101+
直接推送版本标签也可以发布,前提是 `PLUGIN.version` 已经与标签一致。发布失败时,重新运行失败的那个作业即可接着发布。
261102

262-
- [SDKMAN](https://github.com/sdkman/)
263-
- [foojayio](https://github.com/foojayio/discoapi)
103+
工作流引用的是共享的 `@v1` 发布工具,升级这个工具不会发布本插件。包的约定和首次接入的要求,见[共享工作流的文档](https://github.com/version-fox/plugin-manifest-action)。
264104

265-
## 测试
105+
## 致谢
266106

267-
详见 [docs/e2e.md](docs/e2e.md)。
107+
- [SDKMAN](https://github.com/sdkman/),简称和 `.sdkmanrc` 的支持都沿用了它的标识符
108+
- [Foojay](https://github.com/foojayio/discoapi),JDK 数据的来源

0 commit comments

Comments
 (0)