diff --git a/README.md b/README.md index 5461d8f..53a9e30 100644 --- a/README.md +++ b/README.md @@ -32,8 +32,6 @@ java -version `vfox search java tem` lists the Temurin releases, and in an interactive terminal it lets you pick one and installs it. -Behavior that only exists on `main` and not in the latest release is marked "Unreleased" in the pages below. [docs/changes.md](docs/changes.md) lists it, and [docs/install-from-source.md](docs/install-from-source.md) gets you `main`. - ## Versions and names A version is `-`, such as `21.0.8-tem`, with `-fx` after it for JavaFX. Without a distribution you get OpenJDK from jdk.java.net, which has nothing newer than 17.0.2 for 17 and 21.0.2 for 21. See [docs/versions.md](docs/versions.md) for details. @@ -70,8 +68,6 @@ A version is `-`, such as `21.0.8-tem`, with `-fx` after | `grl8`, `grl11`, `grl16`, `grl17`, `grl19` | GraalVM CE for JDK 8 to 19 | | `lnxabi1`, `lnxabi2` | Loongnix, Linux loong64 only | -Unreleased: release 0.6.2 has the rows up to `trava`, and the Loongnix one. - The short names follow SDKMAN's identifiers, with a few differences: SDKMAN calls JetBrains Runtime `jbr`, and it wrote the virtual machine or JDK of AdoptOpenJDK and GraalVM CE into the version (`11.0.10.j9-adpt`, `22.3.3.r17-grl`), where the plugin has a name for each (`adptj9`, `grl17`). Eliya, OJDKBuild, OpenLogic, Red Hat and Semeru certified have no SDKMAN identifier, so their short names are the plugin's own. See [docs/distributions.md](docs/distributions.md) for all the differences and for what each distribution is, and [docs/loongnix.md](docs/loongnix.md) for the last row. ## Platforms @@ -90,8 +86,6 @@ vfox reads the `java=` line of SDKMAN's `.sdkmanrc` through this plugin and sele Most distributions download from GitHub. If that is slow where you are, `export VFOX_JAVA_GITHUB_MIRROR=https://gh-proxy.org/` sends these downloads through a mirror. See [docs/mirror.md](docs/mirror.md) for details. -Unreleased: release 0.6.2 has no mirror setting. - ## Querying Foojay To see which JDKs exist for your platform, ask Foojay yourself. [docs/foojay.md](docs/foojay.md) has the Swagger UI and the commands. diff --git a/README_CN.md b/README_CN.md index 945c64b..5a7d4bf 100644 --- a/README_CN.md +++ b/README_CN.md @@ -32,8 +32,6 @@ java -version `vfox search java tem` 会列出 Temurin 的各个版本,在交互式终端里还可以直接选一个并安装。 -只存在于 `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)。 - ## 版本与命名 版本写成 `<版本>-<发行版>`,例如 `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)。 @@ -70,8 +68,6 @@ java -version | `grl8`、`grl11`、`grl16`、`grl17`、`grl19` | 基于 JDK 8 到 19 的 GraalVM CE | | `lnxabi1`、`lnxabi2` | Loongnix,仅限 Linux loong64 | -未发布:0.6.2 只有到 `trava` 为止的那些行,以及 Loongnix 那一行。 - 简称沿用 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/distributions.md);最后一行见 [docs/zh-CN/loongnix.md](docs/zh-CN/loongnix.md)。 ## 平台 @@ -90,8 +86,6 @@ vfox 通过这个插件读取 SDKMAN 的 `.sdkmanrc` 里的 `java=` 一行,并 大多数发行版从 GitHub 下载。如果你那里下载很慢,执行 `export VFOX_JAVA_GITHUB_MIRROR=https://gh-proxy.org/`,这些下载就会经过镜像。详见 [docs/zh-CN/mirror.md](docs/zh-CN/mirror.md)。 -未发布:0.6.2 没有镜像设置。 - ## 查询 Foojay 想知道你的平台上有哪些 JDK,可以自己去问 Foojay。[docs/zh-CN/foojay.md](docs/zh-CN/foojay.md) 里有 Swagger UI 和查询命令。 diff --git a/docs/changes.md b/docs/changes.md index 5def283..91343c5 100644 --- a/docs/changes.md +++ b/docs/changes.md @@ -2,9 +2,9 @@ [中文](zh-CN/changes.md) | [English](changes.md) -What changed in each release, as a user notices it. GitHub's release pages list the pull requests. The newest release at the time of writing is 0.6.2, and `main` is ahead of it by everything under "Unreleased". [install-from-source.md](install-from-source.md) gets you those changes now. +What changed in each release, as a user notices it. GitHub's release pages list the pull requests. -## Unreleased +## 0.6.3 (2026-10-20) - 13 more distributions, the rest of what Foojay lists: AdoptOpenJDK (`adpt`, `adptj9`), Eliya (`eliya`), OJDKBuild (`ojdkbld`), OpenLogic (`opnlgc`), Red Hat (`rdht`), Semeru certified (`semcrt`), Gluon GraalVM (`gln`) and GraalVM CE for JDK 8 to 19 (`grl8`, `grl11`, `grl16`, `grl17`, `grl19`). Red Hat installs from tar.xz, and OJDKBuild on Linux, OpenLogic on macOS and Gluon GraalVM before 22.1 from zips. A `.sdkmanrc` takes SDKMAN's old identifiers for them, such as `11.0.10.j9-adpt` and `22.3.3.r17-grl`. See [distributions.md](distributions.md). - Mandrel and Liberica NIK install by the GraalVM version they carry again: `java@23.1.12-mandrel` and `java@23.1.8-nik` work, `vfox search java mandrel` lists every release, and `java@23-mandrel` installs the newest 23.x, `23.1.12.1-mandrel`, which runs Java 21. In October 2026 Foojay moved that version from `java_version` to `distribution_version`, and since then release 0.6.2 fails on such versions with `No JDK found`, lists one Mandrel per Java major and installs Mandrel 23.1.8 for `java@21-mandrel`. Installs it made since then keep names after the Java version (`21-mandrel`, `21.0.12.1+2-nik`), and vfox still finds them by those names; uninstall one to get what the spec means now. See [distributions.md](distributions.md#behavior-of-mandrel-and-liberica-nik) ([#106](https://github.com/version-fox/vfox-java/issues/106)). diff --git a/docs/distributions.md b/docs/distributions.md index 4d0ad96..6513d7b 100644 --- a/docs/distributions.md +++ b/docs/distributions.md @@ -4,8 +4,6 @@ The plugin gets the releases and download links of these 31 distributions from [Foojay](foojay.md), all that Foojay listed on 2026-10-20. The short name or the long name goes wherever a distribution does: `21-tem`, `21-temurin`, `temurin-21`, `vfox search java tem`. -Unreleased: release 0.6.2 lacks `adpt`, `adptj9`, `eliya`, `gln`, `grl8`, `grl11`, `grl16`, `grl17`, `grl19`, `ojdkbld`, `opnlgc`, `rdht` and `semcrt`. For those its `vfox install` stops with `Could not extract a valid distribution` and `vfox search` with `Unsupported distribution`. - | Short name | Long name | Distribution | Maintained by | | --- | --- | --- | --- | | `adpt` | `aoj` | AdoptOpenJDK with HotSpot | AdoptOpenJDK | @@ -150,7 +148,6 @@ The open-source edition of GraalVM, built on OpenJDK. - A bare major is GraalVM's as well: `java@23-mandrel` installs the newest 23.x, `23.1.12.1-mandrel`, which runs Java 21, and `java@21-mandrel` installs `21.3.6-mandrel`, which runs Java 17. A longer version installs the release it names: `java@23.1.12-mandrel` is 23.1.12, not 23.1.12.1, and `java@23.1-mandrel` is the first 23.1 release, 23.1.0. A build number finds nothing (`java@23.1.8+1-nik`). - The releases ending in `.0.0` are listed under the bare major (`24-mandrel` is Mandrel 24.0.0) and install with a longer version, `java@24.0.0-mandrel`. Once one is installed, vfox finds `java@24-mandrel` by that name, for `vfox install` and `vfox use` alike. - Some releases come for several Java versions under one number, such as Mandrel 21.3.6 for Java 11 and 17. The plugin installs the build for the newest Java, which for Mandrel 23.0.1.2 and Liberica NIK 23.0.1 is Java 20, not 17. Liberica NIK built a few releases twice for the same Java (`25.0.3`), and the later build installs. The name shows neither the Java version nor BellSoft's build, so the other builds cannot be installed. -- Unreleased: release 0.6.2 names them after Foojay's `java_version`, which held these numbers until Foojay put the Java version there in October 2026. Since then 0.6.2 fails on `java@23.1.12-mandrel` and `java@23.1.8-nik` with `No JDK found`, lists Mandrel in `vfox search` as one name per Java major (`21-mandrel`), installs Mandrel 23.1.8 for `java@21-mandrel` and Liberica NIK 24.1.2, built for Java 23, for `java@23-nik`. ### GraalVM CE 8 to 19 (`grl8`, `grl11`, `grl16`, `grl17`, `grl19`) @@ -169,8 +166,7 @@ GraalVM CE 8 to 19, Gluon GraalVM before 23, and Mandrel and Liberica NIK before - Since 25.1 (June 2026) GraalVM puts out a feature release every month next to its 25.0 line: `25.1.3`, `25.2.4`, `25.3.4.1`, `25.4.4.1.1`. Each is replaced within about a month. Foojay marks Oracle GraalVM's STS, but GraalVM Community's LTS where it lists them the old way round (see below), as the JDK they build on is LTS. `vfox search` leaves the LTS note off them all. - Releases are named after GraalVM's own version, which Foojay gives as `distribution_version`. Foojay's `java_version` is the JDK's version, which a feature release shares with the 25.0 line: `25.4.4.1.1-graal`, `25.3.4.1-graal`, `25.0.4.1.1-graal` and `25.0.4.1-graal` all have the `java_version` 25.0.4.1. - Foojay lists GraalVM Community's feature releases under GraalVM's version too, as it did before October 2026, with downloads from GitHub. So `java@25.4.4.1-graalce`, the name release 0.6.2 gives the 25.4.4.1.1 build, still installs it from GitHub, while `java@25.4.4.1.1-graalce` gets the same file from Oracle's GraalVM Download Service. -- Unreleased: release 0.6.2 names releases after `java_version`, so `java@25.0.4.1-graal` installs the feature release 25.4.4.1.1, `java@25-graal` installs a feature release whenever one is out on the JDK of the newest 25.0 build, and `vfox search java graal` lists no feature release. -- `java@25-graal` installs the newest build of the 25.0 line (`25.0.5-graal` on 2026-10-20), the line Oracle's own `25/latest` download follows. A feature release needs its full version: `java@25.4.4.1.1-graal`. `vfox use java@25-graal` and `java=25-graal` in a `.sdkmanrc` select the newest installed build of that line too, and a feature release only where nothing else of 25 is installed. Unreleased: release 0.6.2 selects the newest installed release of 25, which is a feature release as soon as one is installed. +- `java@25-graal` installs the newest build of the 25.0 line (`25.0.5-graal` on 2026-10-20), the line Oracle's own `25/latest` download follows. A feature release needs its full version: `java@25.4.4.1.1-graal`. `vfox use java@25-graal` and `java=25-graal` in a `.sdkmanrc` select the newest installed build of that line too, and a feature release only where nothing else of 25 is installed. - GraalVM Community's 25.0 line ended with `25.0.2`, and the feature releases are all it still ships. `java@25-graalce` installs the newest of them, `25.4.4.1.1-graalce` on 2026-10-20. - The plugin sets `JAVA_HOME` and `PATH`, and no `GRAALVM_HOME`. A `GRAALVM_HOME` that points at a GraalVM of your own stays as it is, and the native-image build plugins fall back to `JAVA_HOME` when it is unset. - There is no Windows ARM64 and no Alpine build, and Intel Macs get nothing after 25.0.1. See [platforms.md](platforms.md#graalvm). diff --git a/docs/foojay.md b/docs/foojay.md index 5c5c950..d02473c 100644 --- a/docs/foojay.md +++ b/docs/foojay.md @@ -31,11 +31,11 @@ https://api.foojay.io/disco/v3.0/packages/jdks | `lib_c_type` | `glibc` or `musl` on Linux, empty elsewhere | | `directly_downloadable` | always `true` | -For a bare major such as `21` the answer lists every release, and the plugin takes the newest 21.x itself, which is what `java@21-tem` installs: `version=21` would match the 21 GA build only (`21+35`). Longer versions match as they are. Unreleased: release 0.6.2 asks for `version=21&latest=available` instead, with which Foojay picks the newest 21.x. +For a bare major such as `21` the answer lists every release, and the plugin takes the newest 21.x itself, which is what `java@21-tem` installs: `version=21` would match the 21 GA build only (`21+35`). Longer versions match as they are. A bare major asks what searching asks so that installing sees the builds `vfox search` lists. Foojay's answers are cached per question, and two questions can get answers of different ages: half an hour after Oracle GraalVM 25.0.5 reached Foojay on 2026-10-20, GitHub's runners got it from a lookup with `distribution_version=25` but not from a search, and `vfox install java@25-graal` took a build that `vfox search java graal` did not list ([#113](https://github.com/version-fox/vfox-java/issues/113)). -The answer is a list of packages. The plugin names a release after `java_version` (Mandrel and Liberica NIK after `distribution_version`, Oracle GraalVM and GraalVM Community after GraalVM's own version), adds `-fx` where `javafx_bundled` is true, marks it LTS where `term_of_support` is `lts`, and prefers a `zip` over a `tar.gz` of the same version on Windows. It leaves out the JREs, installer bundles and RHEL 6 builds that Foojay lists among OJDKBuild's Windows JDKs, and the JDK 11 builds of Gluon GraalVM's 22.x releases, see [distributions.md](distributions.md). For the install it then fetches the package's `links.pkg_info_uri` and downloads its `direct_download_uri`, which is a vendor's own server (GitHub Releases for Temurin). That record also holds a `checksum`. The plugin does not pass it on, so vfox prints `WARNING: Checksum is not provided, skip verify...` and does not verify the download. Unreleased: a download from GitHub can go through a mirror, see [mirror.md](mirror.md). +The answer is a list of packages. The plugin names a release after `java_version` (Mandrel and Liberica NIK after `distribution_version`, Oracle GraalVM and GraalVM Community after GraalVM's own version), adds `-fx` where `javafx_bundled` is true, marks it LTS where `term_of_support` is `lts`, and prefers a `zip` over a `tar.gz` of the same version on Windows. It leaves out the JREs, installer bundles and RHEL 6 builds that Foojay lists among OJDKBuild's Windows JDKs, and the JDK 11 builds of Gluon GraalVM's 22.x releases, see [distributions.md](distributions.md). For the install it then fetches the package's `links.pkg_info_uri` and downloads its `direct_download_uri`, which is a vendor's own server (GitHub Releases for Temurin). That record also holds a `checksum`. The plugin does not pass it on, so vfox prints `WARNING: Checksum is not provided, skip verify...` and does not verify the download. A download from GitHub can go through a mirror, see [mirror.md](mirror.md). `vfox search` differs from the raw list in a few ways. It lists a name once where Foojay has two records for it, and it leaves the LTS note off GraalVM's feature releases (see [distributions.md](distributions.md#behavior-of-oracle-graalvm-and-graalvm-community)). It only lists GA releases. diff --git a/docs/mirror.md b/docs/mirror.md index 444eea9..1560071 100644 --- a/docs/mirror.md +++ b/docs/mirror.md @@ -2,8 +2,6 @@ [中文](zh-CN/mirror.md) | [English](mirror.md) -Unreleased: release 0.6.2 has no mirror setting. - Foojay links the JDKs of most distributions to GitHub Releases, so `vfox install java@21-tem` downloads from `github.com`. If github.com is slow or unreachable where you are, set `VFOX_JAVA_GITHUB_MIRROR` and the plugin sends these downloads through a GitHub mirror. The value is a URL prefix. The plugin puts it in front of the GitHub URL, and adds a `/` if the value does not end in one. For Temurin 21.0.8 on Linux x64: diff --git a/docs/platforms.md b/docs/platforms.md index 30b6192..302b6f5 100644 --- a/docs/platforms.md +++ b/docs/platforms.md @@ -8,7 +8,7 @@ The plugin asks Foojay for packages of the platform it runs on: the operating sy No JDK found for 21-bsg on darwin/arm64. Please check available versions with 'vfox search java' ``` -The table shows which platforms each distribution has packages for. It was taken from Foojay on 2026-10-18, and the rows from AdoptOpenJDK on were added on 2026-10-20. ✅ means Foojay lists at least one package the plugin can install there, ❌ means none. Unreleased: release 0.6.2 has the rows up to Trava only. +The table shows which platforms each distribution has packages for. It was taken from Foojay on 2026-10-18, and the rows from AdoptOpenJDK on were added on 2026-10-20. ✅ means Foojay lists at least one package the plugin can install there, ❌ means none. | Distribution | Linux x64 | Linux arm64 | Alpine x64 | Alpine arm64 | macOS Intel | macOS Apple silicon | Windows x64 | Windows arm64 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | diff --git a/docs/sdkmanrc.md b/docs/sdkmanrc.md index b8f76bf..e4d04bc 100644 --- a/docs/sdkmanrc.md +++ b/docs/sdkmanrc.md @@ -40,7 +40,7 @@ The plugin matches the identifier against the JDKs that are installed, in this o Step 3 does not check that the release is at least the one named. With only `21.0.8+9-tem` installed, `java=21.0.12-tem` selects it, and so does `java=21.0.3-tem`. A build number that is not installed falls back to the newest installed build of the release (`21.0.8+7-tem` selects `21.0.8+9-tem`). If the major is not installed at all, nothing is selected. -For Oracle GraalVM, step 3 leaves out the monthly feature releases (`25.4.4.1.1-graal`), as `vfox use java@25-graal` does, so `java=25-graal` and `java=25.0.3-graal` select the newest installed build of the 25.0 line. If nothing else of 25 is installed, a feature release is taken. If the file names a feature release (SDKMAN spells one `25.4.4+1-graal`), the newest installed release of 25 is taken, as before. Unreleased: release 0.6.2 takes the newest installed release of 25 for `java=25-graal` and `java=25.0.3-graal` too, which is a feature release as soon as one is installed. +For Oracle GraalVM, step 3 leaves out the monthly feature releases (`25.4.4.1.1-graal`), as `vfox use java@25-graal` does, so `java=25-graal` and `java=25.0.3-graal` select the newest installed build of the 25.0 line. If nothing else of 25 is installed, a feature release is taken. If the file names a feature release (SDKMAN spells one `25.4.4+1-graal`), the newest installed release of 25 is taken. It never crosses to another distribution, between a JavaFX build and a plain one, or between an early-access build and a release. @@ -62,9 +62,9 @@ It never crosses to another distribution, between a JavaFX build and a plain one | `22.3.3.r17-grl` | GraalVM CE 22.3.3 for JDK 17, `22.3.3-grl17` | | `22.1.0.1.r17-gln` | Gluon GraalVM 22.1.0.1, `22.1.0.1-gln` | -The last three rows are SDKMAN's identifiers for distributions it no longer lists, with the virtual machine or the JDK in the version, see [distributions.md](distributions.md#short-names-and-sdkman). The plugin installs no JDK 11 build of Gluon GraalVM 22 and no AdoptOpenJDK upstream build, so `22.1.0.1.r11-gln` and `11.0.9.open-adpt` select nothing. Unreleased: release 0.6.2 selects nothing for any of the three. +The last three rows are SDKMAN's identifiers for distributions it no longer lists, with the virtual machine or the JDK in the version, see [distributions.md](distributions.md#short-names-and-sdkman). The plugin installs no JDK 11 build of Gluon GraalVM 22 and no AdoptOpenJDK upstream build, so `22.1.0.1.r11-gln` and `11.0.9.open-adpt` select nothing. -SDKMAN writes the JDK into some versions of Mandrel and Liberica NIK as well, which the plugin names after the GraalVM version alone, see [distributions.md](distributions.md#behavior-of-mandrel-and-liberica-nik). Of a release that comes for two JDKs, the plugin installs only the build for the newer one, so an identifier with the older one selects nothing: `22.1.r11-mandrel`, `23.0.1.r17-nik`. The older JDK is 11 from 21.3 to 22.3.5 and 17 from 23 to 23.0.1.2. `25.r25-mandrel` has only the major and selects the newest installed Mandrel 25, as `java=25-mandrel` does, while SDKMAN installs 25.0.1.0 for it. Unreleased: release 0.6.2 takes `25.0.4.r25` for a release, finds none and selects the newest installed release of the major. +SDKMAN writes the JDK into some versions of Mandrel and Liberica NIK as well, which the plugin names after the GraalVM version alone, see [distributions.md](distributions.md#behavior-of-mandrel-and-liberica-nik). Of a release that comes for two JDKs, the plugin installs only the build for the newer one, so an identifier with the older one selects nothing: `22.1.r11-mandrel`, `23.0.1.r17-nik`. The older JDK is 11 from 21.3 to 22.3.5 and 17 from 23 to 23.0.1.2. `25.r25-mandrel` has only the major and selects the newest installed Mandrel 25, as `java=25-mandrel` does, while SDKMAN installs 25.0.1.0 for it. The number after `+` in SDKMAN's newer identifiers (`21.0.8+1.1-tem`) counts SDKMAN's own rebuilds. It is not a build number of the vendor, so the plugin does not look for one and takes the release. Foojay, and so the installed name, has no zero padding, which is why `27.0.0` means the release `27`. A `.0` padding in `sdk list java` is common (`25.0.1.0+8-open`, `21.0.9.0+116386-jbr`), and the plugin reads it as well. diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index 61336e0..144d5fd 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -20,7 +20,7 @@ The spec holds a distribution and no version. `java@-tem`, `java@temurin-` and ` ### `Could not extract a valid distribution: 21-foo` -Neither part of the spec is the name of a distribution. Names are lower case and come from the table in [distributions.md](distributions.md). Unreleased: release 0.6.2 ends here for the 13 distributions added after it, such as `java@21-opnlgc` and `java@21-openlogic`. +Neither part of the spec is the name of a distribution. Names are lower case and come from the table in [distributions.md](distributions.md). ### `Unsupported distribution: foo` @@ -36,7 +36,7 @@ The download answered 404. Vendors take old builds down while Foojay keeps their ### `VFOX_JAVA_GITHUB_MIRROR must start with http:// or https://, such as https://gh-proxy.org/, but is gh-proxy.org` -The value does not start with `http://` or `https://`. vfox downloads from `http://` and `https://` addresses only and takes any other for a file on disk, so a download from GitHub stops here before it starts. Other downloads do not read the variable. Fix the value or unset the variable, see [mirror.md](mirror.md). Unreleased: release 0.6.2 has no mirror setting. +The value does not start with `http://` or `https://`. vfox downloads from `http://` and `https://` addresses only and takes any other for a file on disk, so a download from GitHub stops here before it starts. Other downloads do not read the variable. Fix the value or unset the variable, see [mirror.md](mirror.md). ### `java@21-tem is not installed` @@ -52,7 +52,7 @@ The value does not start with `http://` or `https://`. vfox downloads from `http ## Network -The plugin talks to Foojay for the lists, and vfox downloads the archive from the vendor's server, often GitHub Releases. For the downloads from GitHub the plugin has a mirror setting, see [mirror.md](mirror.md). Unreleased: release 0.6.2 has none. +The plugin talks to Foojay for the lists, and vfox downloads the archive from the vendor's server, often GitHub Releases. For the downloads from GitHub the plugin has a mirror setting, see [mirror.md](mirror.md). vfox's own proxy setting covers both the Foojay requests and the download: diff --git a/docs/versions.md b/docs/versions.md index af837a0..8aa22ff 100644 --- a/docs/versions.md +++ b/docs/versions.md @@ -27,7 +27,7 @@ The distribution is a short name (`tem`) or a long name (`temurin`). Both lists - A longer version must match a release the distribution lists. `21.0.8-tem` installs `21.0.8+9-tem`, the newest build of 21.0.8. A release nobody published fails with `No JDK found for 21.0.99-tem on linux/amd64`. - A build number selects that build: `21.0.5+63130-jb`. - A release padded with zeros, as SDKMAN writes it, is accepted: `27.0.0-librca` installs `27+36-librca`. -- Oracle GraalVM's bare major installs the newest build of its 25.0 line, not one of the monthly feature releases, which have to be named in full (`25.4.4.1.1-graal`). Unreleased: release 0.6.2 can install a feature release for the bare major. See [GraalVM](distributions.md#graalvm-family). +- Oracle GraalVM's bare major installs the newest build of its 25.0 line, not one of the monthly feature releases, which have to be named in full (`25.4.4.1.1-graal`). See [GraalVM](distributions.md#graalvm-family). - With `-fx` only JavaFX builds are considered, without it only builds without JavaFX. The two are never mixed. - Mandrel and Liberica NIK go by the GraalVM version they carry, for a bare major too: `java@23-mandrel` installs `23.1.12.1-mandrel`, which runs Java 21. See [Mandrel and Liberica NIK](distributions.md#behavior-of-mandrel-and-liberica-nik). - On Windows a release shipped as zip and as tar.gz installs from the zip. @@ -76,7 +76,7 @@ vfox uninstall java@21.0.8+9-tem If you name a build or a release, it does not cross over to another one (`21.0.12-tem` does not select `21.0.12.1+1-tem`). It does not cross to another distribution, between JavaFX and plain, or between early-access and GA either. A name that matches nothing is reported as `java@99-tem is not installed`. -With Oracle GraalVM, `vfox use` of a bare major selects the build that installing it installs: `25-graal` selects the newest installed build of the 25.0 line (`25.0.5-graal`), not a monthly feature release such as `25.4.4.1.1-graal`, which it takes only where nothing else of 25 is installed. A feature release is selected by its full version. If `25-graal` itself is installed, the GA release 25 that release 0.6.1 installed, that one is selected, as for any installed name. Unreleased: release 0.6.2 selects the newest installed release of 25, which is a feature release as soon as one is installed. +With Oracle GraalVM, `vfox use` of a bare major selects the build that installing it installs: `25-graal` selects the newest installed build of the 25.0 line (`25.0.5-graal`), not a monthly feature release such as `25.4.4.1.1-graal`, which it takes only where nothing else of 25 is installed. A feature release is selected by its full version. If `25-graal` itself is installed, the GA release 25 that release 0.6.1 installed, that one is selected, as for any installed name. vfox's own match for `21` goes by the version alone, so it also takes GraalVM CE 8 to 19, Gluon GraalVM, Mandrel and Liberica NIK, whose versions are GraalVM's: `21.3.1-grl11` runs Java 11, and `vfox use java@21` selects it over `21.0.12.1+1-tem`. See [distributions.md](distributions.md#versions-numbered-after-graalvm). diff --git a/docs/zh-CN/changes.md b/docs/zh-CN/changes.md index d10cdb2..ce45b9b 100644 --- a/docs/zh-CN/changes.md +++ b/docs/zh-CN/changes.md @@ -2,9 +2,9 @@ [中文](changes.md) | [English](../changes.md) -按发布版本列出用户能感受到的变化。GitHub 的 Release 页面列出了对应的 PR。写这篇文档时最新的发布版是 0.6.2,`main` 比它多出“未发布”下面的所有内容。想现在就用上这些变化,见 [install-from-source.md](install-from-source.md)。 +按发布版本列出用户能感受到的变化。GitHub 的 Release 页面列出了对应的 PR。 -## 未发布 +## 0.6.3(2026-10-20) - 新增 13 个发行版,Foojay 列出的发行版从此全都有了:AdoptOpenJDK(`adpt`、`adptj9`)、Eliya(`eliya`)、OJDKBuild(`ojdkbld`)、OpenLogic(`opnlgc`)、Red Hat(`rdht`)、Semeru 认证版(`semcrt`)、Gluon GraalVM(`gln`),以及基于 JDK 8 到 19 的 GraalVM CE(`grl8`、`grl11`、`grl16`、`grl17`、`grl19`)。Red Hat 从 tar.xz 包安装;Linux 上的 OJDKBuild、macOS 上的 OpenLogic 和 22.1 以前的 Gluon GraalVM 从 zip 包安装。`.sdkmanrc` 里写 SDKMAN 以前给它们的标识符也认,例如 `11.0.10.j9-adpt`、`22.3.3.r17-grl`。见 [distributions.md](distributions.md)。 - Mandrel 和 Liberica NIK 重新按它们沿用的 GraalVM 版本号安装:`java@23.1.12-mandrel` 和 `java@23.1.8-nik` 能装了,`vfox search java mandrel` 列出全部版本,`java@23-mandrel` 装最新的 23.x,即运行 Java 21 的 `23.1.12.1-mandrel`。2026 年 10 月,Foojay 把这个版本号从 `java_version` 挪到了 `distribution_version`,此后 0.6.2 装这样的版本都报 `No JDK found`,每个 Java 大版本只列一个 Mandrel,`java@21-mandrel` 装的是 Mandrel 23.1.8。这段时间里它装上的版本按 Java 版本号命名(`21-mandrel`、`21.0.12.1+2-nik`),vfox 仍会按这些名字找到它们;想要这个写法现在所指的版本,先把旧的卸载。见 [distributions.md](distributions.md#mandrel-与-liberica-nik-的行为)([#106](https://github.com/version-fox/vfox-java/issues/106))。 diff --git a/docs/zh-CN/distributions.md b/docs/zh-CN/distributions.md index 79c7802..72ae3f5 100644 --- a/docs/zh-CN/distributions.md +++ b/docs/zh-CN/distributions.md @@ -4,8 +4,6 @@ 插件从 [Foojay](foojay.md) 获取下面 31 个发行版的版本列表和下载链接,2026-10-20 时 Foojay 列出的发行版全在这里。凡是要写发行版的地方,简称和长名都可以:`21-tem`、`21-temurin`、`temurin-21`、`vfox search java tem`。 -未发布:0.6.2 没有 `adpt`、`adptj9`、`eliya`、`gln`、`grl8`、`grl11`、`grl16`、`grl17`、`grl19`、`ojdkbld`、`opnlgc`、`rdht` 和 `semcrt`。对这些发行版,0.6.2 的 `vfox install` 会报 `Could not extract a valid distribution`,`vfox search` 会报 `Unsupported distribution`。 - | 简称 | 长名 | 发行版 | 维护方 | | --- | --- | --- | --- | | `adpt` | `aoj` | AdoptOpenJDK(HotSpot) | AdoptOpenJDK | @@ -150,7 +148,6 @@ GraalVM 的开源版本,基于 OpenJDK。 - 只写大版本号时,这个大版本号同样是 GraalVM 的:`java@23-mandrel` 装最新的 23.x,即 `23.1.12.1-mandrel`,运行的是 Java 21;`java@21-mandrel` 装的是 `21.3.6-mandrel`,运行的是 Java 17。写得更具体的版本只装它指定的那一个:`java@23.1.12-mandrel` 装的是 23.1.12,不是 23.1.12.1;`java@23.1-mandrel` 装的是 23.1 系列的第一个版本 23.1.0。写了构建号则什么也找不到(`java@23.1.8+1-nik`)。 - 以 `.0.0` 结尾的版本在列表里显示为只有大版本号的名字(`24-mandrel` 是 Mandrel 24.0.0),要写全版本号才能装:`java@24.0.0-mandrel`。装上之后,vfox 会按这个名字找到 `java@24-mandrel`,`vfox install` 和 `vfox use` 都一样。 - 有些版本号下有几个构建,分别对应不同的 Java,比如 Mandrel 21.3.6 有 Java 11 和 Java 17 两个构建,插件装 Java 最新的那个;对 Mandrel 23.0.1.2 和 Liberica NIK 23.0.1 来说,那是 Java 20,不是 17。Liberica NIK 有几个版本为同一个 Java 构建了两次(`25.0.3`),装的是后一次的构建。版本名里既看不出 Java 版本,也看不出 BellSoft 的构建号,所以其他构建装不了。 -- 未发布:0.6.2 按 Foojay 的 `java_version` 给它们命名。这个字段原先放的就是这些版本号,2026 年 10 月起 Foojay 在这里改放 Java 的版本号。从那以后,0.6.2 装 `java@23.1.12-mandrel` 和 `java@23.1.8-nik` 都报 `No JDK found`,`vfox search` 里的 Mandrel 每个 Java 大版本只列一个名字(`21-mandrel`),`java@21-mandrel` 装的是 Mandrel 23.1.8,`java@23-nik` 装的是为 Java 23 构建的 Liberica NIK 24.1.2。 ### GraalVM CE 8 到 19(`grl8`、`grl11`、`grl16`、`grl17`、`grl19`) @@ -169,8 +166,7 @@ GraalVM CE 8 到 19、23 以前的 Gluon GraalVM,以及 25 以前的 Mandrel - 从 25.1(2026 年 6 月)起,GraalVM 在 25.0 系列之外每月发布一个特性版本(feature release):`25.1.3`、`25.2.4`、`25.3.4.1`、`25.4.4.1.1`,每个大约一个月后就被下一个取代。Foojay 把 Oracle GraalVM 的特性版本标成 STS;GraalVM 社区版按老办法列的那些(见下文),则因为基于的 JDK 是 LTS,也被标成了 LTS。`vfox search` 一律不给它们加 LTS 备注。 - 版本名用的是 GraalVM 自己的版本号,也就是 Foojay 的 `distribution_version`。Foojay 的 `java_version` 是 JDK 的版本号,特性版本会和 25.0 系列的某个构建共用同一个值:`25.4.4.1.1-graal`、`25.3.4.1-graal`、`25.0.4.1.1-graal` 和 `25.0.4.1-graal` 的 `java_version` 都是 25.0.4.1。 - GraalVM 社区版的特性版本,Foojay 还像 2026 年 10 月以前那样,按 GraalVM 的版本号另列了一份,下载地址在 GitHub。所以 0.6.2 给 25.4.4.1.1 构建起的名字 `java@25.4.4.1-graalce` 仍然能从 GitHub 装上这个构建,而 `java@25.4.4.1.1-graalce` 是从 Oracle 的 GraalVM Download Service 下载同一个文件。 -- 未发布:0.6.2 按 `java_version` 命名,所以 `java@25.0.4.1-graal` 装上的是特性版本 25.4.4.1.1;只要 25.0 系列最新构建所用的 JDK 上已经出了特性版本,`java@25-graal` 装上的也是特性版本;`vfox search java graal` 里也没有特性版本。 -- `java@25-graal` 装的是 25.0 系列的最新构建(2026-10-20 是 `25.0.5-graal`),Oracle 官方的 `25/latest` 下载链接跟的也是这个系列。特性版本要写全版本号:`java@25.4.4.1.1-graal`。`vfox use java@25-graal` 和 `.sdkmanrc` 里的 `java=25-graal` 选中的也是这个系列里已安装的最新构建,只有 25 里没有装别的版本时才会选特性版本。未发布:0.6.2 选中的是 25 里已安装的最新版本,所以一旦装了特性版本,选中的就是它。 +- `java@25-graal` 装的是 25.0 系列的最新构建(2026-10-20 是 `25.0.5-graal`),Oracle 官方的 `25/latest` 下载链接跟的也是这个系列。特性版本要写全版本号:`java@25.4.4.1.1-graal`。`vfox use java@25-graal` 和 `.sdkmanrc` 里的 `java=25-graal` 选中的也是这个系列里已安装的最新构建,只有 25 里没有装别的版本时才会选特性版本。 - GraalVM 社区版的 25.0 系列到 `25.0.2` 为止,现在只发布特性版本。`java@25-graalce` 装其中最新的一个,截至 2026-10-20 是 `25.4.4.1.1-graalce`。 - 插件只设置 `JAVA_HOME` 和 `PATH`,不设置 `GRAALVM_HOME`。你设置的、指向自己的 GraalVM 的 `GRAALVM_HOME` 保持原样;没有设置时,native-image 的构建插件会回退到 `JAVA_HOME`。 - 没有 Windows ARM64 和 Alpine 的构建,Intel Mac 上 25.0.1 之后的版本也没有。见 [platforms.md](platforms.md#graalvm)。 diff --git a/docs/zh-CN/foojay.md b/docs/zh-CN/foojay.md index 029b46f..ed93c53 100644 --- a/docs/zh-CN/foojay.md +++ b/docs/zh-CN/foojay.md @@ -31,11 +31,11 @@ https://api.foojay.io/disco/v3.0/packages/jdks | `lib_c_type` | Linux 上是 `glibc` 或 `musl`,其他系统为空 | | `directly_downloadable` | 始终是 `true` | -只写大版本号(如 `21`)时,返回结果里有全部版本,由插件自己挑出最新的 21.x,`java@21-tem` 装的就是它:`version=21` 只会匹配 21 的 GA 构建(`21+35`)。更具体的版本则按原样匹配。未发布:0.6.2 查的是 `version=21&latest=available`,由 Foojay 挑出最新的 21.x。 +只写大版本号(如 `21`)时,返回结果里有全部版本,由插件自己挑出最新的 21.x,`java@21-tem` 装的就是它:`version=21` 只会匹配 21 的 GA 构建(`21+35`)。更具体的版本则按原样匹配。 只写大版本号时和搜索发同一个请求,这样安装时看到的构建和 `vfox search` 列出的才一致。Foojay 的结果按请求分别缓存,不同的请求拿到的结果可能新旧不一:2026-10-20 Oracle GraalVM 25.0.5 上了 Foojay 半小时后,GitHub 的 runner 用 `distribution_version=25` 查已经有它,搜索的结果里却还没有,`vfox install java@25-graal` 装上了 `vfox search java graal` 没有列出的构建([#113](https://github.com/version-fox/vfox-java/issues/113))。 -返回的是一个包列表。插件用 `java_version` 给版本命名(Mandrel 和 Liberica NIK 用 `distribution_version`,Oracle GraalVM 和 GraalVM 社区版用 GraalVM 自己的版本号);`javafx_bundled` 为真时加上 `-fx`;`term_of_support` 是 `lts` 时标注 LTS;在 Windows 上,同一版本既有 `zip` 又有 `tar.gz` 时优先用 `zip`。Foojay 混在 OJDKBuild 的 Windows JDK 里的 JRE、installer bundle 包和 RHEL 6 构建,以及 Gluon GraalVM 22.x 的 JDK 11 构建,插件都会略过,见 [distributions.md](distributions.md)。安装时,插件再取这个包的 `links.pkg_info_uri`,并从其中的 `direct_download_uri` 下载,那是厂商自己的服务器(Temurin 是 GitHub Releases)。这条记录里还有 `checksum`,但插件没有把它交给 vfox,所以 vfox 会打印 `WARNING: Checksum is not provided, skip verify...`,下载内容不做校验。未发布:从 GitHub 下载时可以经过镜像,见 [mirror.md](mirror.md)。 +返回的是一个包列表。插件用 `java_version` 给版本命名(Mandrel 和 Liberica NIK 用 `distribution_version`,Oracle GraalVM 和 GraalVM 社区版用 GraalVM 自己的版本号);`javafx_bundled` 为真时加上 `-fx`;`term_of_support` 是 `lts` 时标注 LTS;在 Windows 上,同一版本既有 `zip` 又有 `tar.gz` 时优先用 `zip`。Foojay 混在 OJDKBuild 的 Windows JDK 里的 JRE、installer bundle 包和 RHEL 6 构建,以及 Gluon GraalVM 22.x 的 JDK 11 构建,插件都会略过,见 [distributions.md](distributions.md)。安装时,插件再取这个包的 `links.pkg_info_uri`,并从其中的 `direct_download_uri` 下载,那是厂商自己的服务器(Temurin 是 GitHub Releases)。这条记录里还有 `checksum`,但插件没有把它交给 vfox,所以 vfox 会打印 `WARNING: Checksum is not provided, skip verify...`,下载内容不做校验。从 GitHub 下载时可以经过镜像,见 [mirror.md](mirror.md)。 `vfox search` 与原始列表有几处不同:Foojay 里同一个名字有两条记录时,它只列一次;不给 GraalVM 的特性版本加 LTS 备注(见 [distributions.md](distributions.md#oracle-graalvm-与-graalvm-社区版的行为));只列 GA 版本。 diff --git a/docs/zh-CN/mirror.md b/docs/zh-CN/mirror.md index 73d26ab..8f8736a 100644 --- a/docs/zh-CN/mirror.md +++ b/docs/zh-CN/mirror.md @@ -2,8 +2,6 @@ [中文](mirror.md) | [English](../mirror.md) -未发布:0.6.2 没有镜像设置。 - Foojay 把大多数发行版的 JDK 链接到 GitHub Releases,所以 `vfox install java@21-tem` 是从 `github.com` 下载的。如果你那里访问 github.com 很慢,或者连不上,就设置 `VFOX_JAVA_GITHUB_MIRROR`,插件会让这些下载经过 GitHub 镜像。 值是一个 URL 前缀。插件把它放在 GitHub 地址前面,值不以 `/` 结尾时会补上一个。以 Linux x64 上的 Temurin 21.0.8 为例: diff --git a/docs/zh-CN/platforms.md b/docs/zh-CN/platforms.md index ee8130a..899f2de 100644 --- a/docs/zh-CN/platforms.md +++ b/docs/zh-CN/platforms.md @@ -8,7 +8,7 @@ No JDK found for 21-bsg on darwin/arm64. Please check available versions with 'vfox search java' ``` -下表列出各发行版有哪些平台的包,数据取自 2026-10-18 的 Foojay,从 AdoptOpenJDK 起的各行是 2026-10-20 补上的。✅ 表示 Foojay 在这个平台上至少列有一个插件能安装的包,❌ 表示一个也没有。未发布:0.6.2 只有到 Trava 为止的那些行。 +下表列出各发行版有哪些平台的包,数据取自 2026-10-18 的 Foojay,从 AdoptOpenJDK 起的各行是 2026-10-20 补上的。✅ 表示 Foojay 在这个平台上至少列有一个插件能安装的包,❌ 表示一个也没有。 | 发行版 | Linux x64 | Linux arm64 | Alpine x64 | Alpine arm64 | macOS Intel | macOS Apple Silicon | Windows x64 | Windows arm64 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | diff --git a/docs/zh-CN/sdkmanrc.md b/docs/zh-CN/sdkmanrc.md index f43b518..809bd9a 100644 --- a/docs/zh-CN/sdkmanrc.md +++ b/docs/zh-CN/sdkmanrc.md @@ -40,7 +40,7 @@ vfox 挂载到 Shell 之后,进入目录时会读取这个文件,并选中 第 3 步不检查已装的版本是否低于你写的版本。只装了 `21.0.8+9-tem` 时,`java=21.0.12-tem` 会选中它,`java=21.0.3-tem` 也一样。写了没装的构建号,会退到这个版本已安装的最新构建(`21.0.8+7-tem` 选中 `21.0.8+9-tem`)。如果这个大版本根本没装,就什么也不选。 -对 Oracle GraalVM,第 3 步会跳过每月发布的特性版本(`25.4.4.1.1-graal`),和 `vfox use java@25-graal` 一样,所以 `java=25-graal` 和 `java=25.0.3-graal` 选中的是 25.0 系列里已安装的最新构建。如果 25 里没有装别的版本,就选特性版本。如果文件里写的是特性版本(SDKMAN 写作 `25.4.4+1-graal`),仍然选 25 里已安装的最新版本,和以前一样。未发布:0.6.2 对 `java=25-graal` 和 `java=25.0.3-graal` 选中的也是 25 里已安装的最新版本,所以一旦装了特性版本,选中的就是它。 +对 Oracle GraalVM,第 3 步会跳过每月发布的特性版本(`25.4.4.1.1-graal`),和 `vfox use java@25-graal` 一样,所以 `java=25-graal` 和 `java=25.0.3-graal` 选中的是 25.0 系列里已安装的最新构建。如果 25 里没有装别的版本,就选特性版本。如果文件里写的是特性版本(SDKMAN 写作 `25.4.4+1-graal`),选的是 25 里已安装的最新版本。 它不会跨发行版,不会在带 JavaFX 和不带 JavaFX 的构建之间串用,也不会在 EA 构建和 GA 版本之间串用。 @@ -62,9 +62,9 @@ vfox 挂载到 Shell 之后,进入目录时会读取这个文件,并选中 | `22.3.3.r17-grl` | 基于 JDK 17 的 GraalVM CE 22.3.3,`22.3.3-grl17` | | `22.1.0.1.r17-gln` | Gluon GraalVM 22.1.0.1,`22.1.0.1-gln` | -最后三行是 SDKMAN 给它已经不再提供的发行版用过的标识符,虚拟机或 JDK 版本写在版本号里,见 [distributions.md](distributions.md#简称与-sdkman-的不同)。插件不安装 Gluon GraalVM 22 的 JDK 11 构建,也不安装 AdoptOpenJDK 的 upstream 构建,所以 `22.1.0.1.r11-gln` 和 `11.0.9.open-adpt` 什么都不会选中。未发布:0.6.2 对这三行都选不中任何 JDK。 +最后三行是 SDKMAN 给它已经不再提供的发行版用过的标识符,虚拟机或 JDK 版本写在版本号里,见 [distributions.md](distributions.md#简称与-sdkman-的不同)。插件不安装 Gluon GraalVM 22 的 JDK 11 构建,也不安装 AdoptOpenJDK 的 upstream 构建,所以 `22.1.0.1.r11-gln` 和 `11.0.9.open-adpt` 什么都不会选中。 -SDKMAN 在一些 Mandrel 和 Liberica NIK 的版本号里也写了 JDK 版本,而插件只按 GraalVM 版本号给它们命名,见 [distributions.md](distributions.md#mandrel-与-liberica-nik-的行为)。一个版本同时为两个 JDK 发布时,插件只装较新 JDK 的构建,所以写了较旧 JDK 的标识符什么都不会选中:`22.1.r11-mandrel`、`23.0.1.r17-nik`。较旧的 JDK,在 21.3 到 22.3.5 是 JDK 11,在 23 到 23.0.1.2 是 JDK 17。`25.r25-mandrel` 只写了大版本号,会选中已安装的最新 Mandrel 25,和 `java=25-mandrel` 一样,而 SDKMAN 按这个标识符装的是 25.0.1.0。未发布:0.6.2 把 `25.0.4.r25` 当成版本号,找不到这个版本,就选中同一大版本里已安装的最新版本。 +SDKMAN 在一些 Mandrel 和 Liberica NIK 的版本号里也写了 JDK 版本,而插件只按 GraalVM 版本号给它们命名,见 [distributions.md](distributions.md#mandrel-与-liberica-nik-的行为)。一个版本同时为两个 JDK 发布时,插件只装较新 JDK 的构建,所以写了较旧 JDK 的标识符什么都不会选中:`22.1.r11-mandrel`、`23.0.1.r17-nik`。较旧的 JDK,在 21.3 到 22.3.5 是 JDK 11,在 23 到 23.0.1.2 是 JDK 17。`25.r25-mandrel` 只写了大版本号,会选中已安装的最新 Mandrel 25,和 `java=25-mandrel` 一样,而 SDKMAN 按这个标识符装的是 25.0.1.0。 SDKMAN 新写法里 `+` 后面的数字(`21.0.8+1.1-tem`)是 SDKMAN 自己重新构建的次数,不是厂商的构建号,所以插件不会去找这个构建,而是按版本匹配。Foojay 和安装后的版本名都不补零,所以 `27.0.0` 指的就是 `27`。`sdk list java` 里补一个 `.0` 很常见(`25.0.1.0+8-open`、`21.0.9.0+116386-jbr`),插件同样能读。 diff --git a/docs/zh-CN/troubleshooting.md b/docs/zh-CN/troubleshooting.md index 5de2971..bfbcc62 100644 --- a/docs/zh-CN/troubleshooting.md +++ b/docs/zh-CN/troubleshooting.md @@ -20,7 +20,7 @@ Foojay 在这个平台上没有对应的包:版本、发行版、带不带 Jav ### `Could not extract a valid distribution: 21-foo` -`-` 前后两部分都不是发行版名。名字都是小写,取自 [distributions.md](distributions.md) 里的表。未发布:0.6.2 之后新增的 13 个发行版,在 0.6.2 上都会报这个错,比如 `java@21-opnlgc` 和 `java@21-openlogic`。 +`-` 前后两部分都不是发行版名。名字都是小写,取自 [distributions.md](distributions.md) 里的表。 ### `Unsupported distribution: foo` @@ -36,7 +36,7 @@ Foojay 在这个平台上没有对应的包:版本、发行版、带不带 Jav ### `VFOX_JAVA_GITHUB_MIRROR must start with http:// or https://, such as https://gh-proxy.org/, but is gh-proxy.org` -这个值不是以 `http://` 或 `https://` 开头。vfox 只从 `http://` 和 `https://` 开头的地址下载,别的写法它会当成磁盘上的文件,所以从 GitHub 下载时,插件在下载开始之前就停在这里;其他下载不读这个变量。改正这个值,或者取消设置这个变量,见 [mirror.md](mirror.md)。未发布:0.6.2 没有镜像设置。 +这个值不是以 `http://` 或 `https://` 开头。vfox 只从 `http://` 和 `https://` 开头的地址下载,别的写法它会当成磁盘上的文件,所以从 GitHub 下载时,插件在下载开始之前就停在这里;其他下载不读这个变量。改正这个值,或者取消设置这个变量,见 [mirror.md](mirror.md)。 ### `java@21-tem is not installed` @@ -52,7 +52,7 @@ Foojay 在这个平台上没有对应的包:版本、发行版、带不带 Jav ## 网络 -插件向 Foojay 取版本列表,压缩包则由 vfox 从厂商的服务器下载,常常是 GitHub Releases。对从 GitHub 下载的部分,插件有镜像设置,见 [mirror.md](mirror.md)。未发布:0.6.2 没有。 +插件向 Foojay 取版本列表,压缩包则由 vfox 从厂商的服务器下载,常常是 GitHub Releases。对从 GitHub 下载的部分,插件有镜像设置,见 [mirror.md](mirror.md)。 vfox 自己的代理设置对 Foojay 请求和下载都有效: diff --git a/docs/zh-CN/versions.md b/docs/zh-CN/versions.md index 002bef8..68dd8ca 100644 --- a/docs/zh-CN/versions.md +++ b/docs/zh-CN/versions.md @@ -27,7 +27,7 @@ vfox install java@21 # 不写发行版:jdk.java.net 上的 Open - 写得更具体时,必须是这个发行版列出的版本。`21.0.8-tem` 装的是 21.0.8 的最新构建 `21.0.8+9-tem`。根本不存在的版本会失败,报 `No JDK found for 21.0.99-tem on linux/amd64`。 - 写了构建号就装那个构建:`21.0.5+63130-jb`。 - SDKMAN 写法里补了零的版本也能识别:`27.0.0-librca` 装的是 `27+36-librca`。 -- Oracle GraalVM 只写大版本号时,装 25.0 系列的最新构建,不装每月发布的特性版本(feature release)。特性版本要写全版本号(`25.4.4.1.1-graal`)。未发布:0.6.2 只写大版本号时可能装上特性版本。见 [GraalVM](distributions.md#graalvm-系列)。 +- Oracle GraalVM 只写大版本号时,装 25.0 系列的最新构建,不装每月发布的特性版本(feature release)。特性版本要写全版本号(`25.4.4.1.1-graal`)。见 [GraalVM](distributions.md#graalvm-系列)。 - 写了 `-fx` 就只考虑带 JavaFX 的构建,没写就只考虑不带的,两者不会混用。 - Mandrel 和 Liberica NIK 按它们沿用的 GraalVM 版本号来,只写大版本号时也一样:`java@23-mandrel` 装的是 `23.1.12.1-mandrel`,运行的是 Java 21。见 [Mandrel 与 Liberica NIK](distributions.md#mandrel-与-liberica-nik-的行为)。 - 在 Windows 上,同一版本既有 zip 又有 tar.gz 时,装 zip。 @@ -76,7 +76,7 @@ vfox uninstall java@21.0.8+9-tem 写明了构建或版本时,不会跳到别的构建或版本(`21.0.12-tem` 不会选中 `21.0.12.1+1-tem`)。也不会跨发行版,不会在带 JavaFX 和不带 JavaFX 的构建之间串用,不会在 EA 和 GA 之间串用。什么都匹配不上时,报 `java@99-tem is not installed`。 -Oracle GraalVM 只写大版本号时,`vfox use` 选的和 `vfox install` 装的是同一个构建:`vfox use java@25-graal` 选中 25.0 系列里已安装的最新构建(`25.0.5-graal`),而不是每月发布的特性版本(比如 `25.4.4.1.1-graal`);只有 25 里没有装别的版本时,才会选特性版本。特性版本要写全版本号。如果 `25-graal` 本身已经安装(0.6.1 装的 GA 版本 25),选中的就是它,和任何已安装的版本名一样。未发布:0.6.2 选中的是 25 里已安装的最新版本,所以一旦装了特性版本,选中的就是它。 +Oracle GraalVM 只写大版本号时,`vfox use` 选的和 `vfox install` 装的是同一个构建:`vfox use java@25-graal` 选中 25.0 系列里已安装的最新构建(`25.0.5-graal`),而不是每月发布的特性版本(比如 `25.4.4.1.1-graal`);只有 25 里没有装别的版本时,才会选特性版本。特性版本要写全版本号。如果 `25-graal` 本身已经安装(0.6.1 装的 GA 版本 25),选中的就是它,和任何已安装的版本名一样。 vfox 自己匹配 `21` 时只看版本号,所以 GraalVM CE 8 到 19、Gluon GraalVM、Mandrel 和 Liberica NIK 也会被它选中,它们的版本号是 GraalVM 的:`21.3.1-grl11` 运行的是 Java 11,`vfox use java@21` 却会选中它,而不是 `21.0.12.1+1-tem`。见 [distributions.md](distributions.md#按-graalvm-编号的版本)。