如何获取SDKMAN所有版本(含隐藏版)?解决部分候选版本返回空问题
解决SDKMAN查看所有版本(含Java旧版本)的问题
核心问题原因
SDKMAN的API针对不同候选(尤其是Java)有特殊的版本分发逻辑,你用的通用版本API对Java不适用——Java的版本数据是按**发行商(vendor)**拆分的,不是直接按平台统一返回。
正确的API调用方式
1. 获取Java的所有发行商
先调用这个接口拿到Java的所有可用发行商:
https://api.sdkman.io/2/candidates/java/vendors
返回内容会包含adoptopenjdk、temurin、zulu这类发行商标识。
2. 获取指定发行商的Java所有版本
拿到发行商后,用以下格式的接口获取对应发行商的全量版本(替换{vendor}为实际发行商,{platform}为你的系统,比如win/linux/osx):
https://api.sdkman.io/2/candidates/java/{platform}/{vendor}/versions/all
比如Windows上查看Temurin的所有Java版本:
https://api.sdkman.io/2/candidates/java/win/temurin/versions/all
3. 通用候选的全量版本获取
对于maven、gradle这类非Java的候选,你之前用的接口是有效的:
https://api.sdkman.io/2/candidates/{candidate}/{platform}/versions/all
CLI层面的替代方案
如果不想直接调用API,也可以用SDKMAN的CLI命令强制查看全量版本:
- 针对Java,指定发行商查看全量:
sdk list java temurin - 通用候选直接加
all参数:sdk list maven all
补充说明
SDKMAN默认sdk list只显示"稳定版"和"近期版本",旧版本会被隐藏,加all参数或者调用对应API才能拿到完整列表。Java因为涉及多发行商,所以需要额外指定发行商维度才能获取全量版本。
内容的提问来源于stack exchange,提问作者tbeernot
相关产品推荐
相关产品推荐

