diff --git a/landing-page/data/jdk.json b/landing-page/data/jdk.json index 72de0d9..697f6cc 100644 --- a/landing-page/data/jdk.json +++ b/landing-page/data/jdk.json @@ -1,5 +1,5 @@ { - "lastUpdated": "2026-01-01T01:27:22.674Z", + "lastUpdated": "2026-01-02T06:47:59.452952+00:00", "jenv": { "version": "0.6.9", "platforms": { @@ -27,16 +27,21 @@ "url": "https://github.com/WhyWhatHow/jenv/releases/download/v0.6.9/jenv-0.6.9-osx-aarch_64.zip", "size": "3.5 MB", "sha256": "" + }, + "windows-arm64": { + "url": "https://github.com/WhyWhatHow/jenv/releases/download/v0.6.9/jenv-0.6.9-windows-aarch_64.zip", + "size": "3.7 MB", + "sha256": "" } } }, "jdk": { "versions": [ - 8, - 11, - 17, + 25, 21, - 25 + 17, + 11, + 8 ], "recommended": [ 11, @@ -48,70 +53,84 @@ "description": "Most popular open-source JDK", "recommended": true, "versions": { - "8": { + "25": { "windows-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/4b9217751ba73eb5208c663a2cfe2c5d/redirect", - "size": "102.0 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/b96cb7670c095245220e7d01d5927b58/redirect", + "size": "134.5 MB", "sha256": "", - "javaVersion": "8.0.472+8", + "javaVersion": "25.0.1+8", "distribution": "temurin" }, "linux-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/a4f0eee30298361b5e5bdf633991daff/redirect", - "size": "96.3 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/5ee463876563a46fff651cce1bc53a4c/redirect", + "size": "134.2 MB", "sha256": "", - "javaVersion": "8.0.472+8", + "javaVersion": "25.0.1+8", "distribution": "temurin" }, "linux-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/8af28cc5e3c004af11c7e3d2f857f876/redirect", - "size": "97.5 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/c5ee947fbfb70bc347d8d531e3a578c4/redirect", + "size": "133.2 MB", "sha256": "", - "javaVersion": "8.0.472+8", + "javaVersion": "25.0.1+8", "distribution": "temurin" }, "macos-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/dc9716d3e8f8baffc294fb182ceca2c2/redirect", - "size": "104.5 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/59a9771cad43219260d9aac9a8ec4d6a/redirect", + "size": "114.7 MB", "sha256": "", - "javaVersion": "8.0.472+8", + "javaVersion": "25.0.1+8", + "distribution": "temurin" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/e1118b4c7c2858d28154d086dbff010e/redirect", + "size": "130.0 MB", + "sha256": "", + "javaVersion": "25.0.1+8", "distribution": "temurin" } }, - "11": { + "21": { "windows-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/d581f826b6d8b8d59155be085f36c5ff/redirect", - "size": "190.1 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/552c7bffe0370c66410a51c55985b511/redirect", + "size": "195.5 MB", "sha256": "", - "javaVersion": "11.0.29+7", + "javaVersion": "21.0.9+10", "distribution": "temurin" }, "linux-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/29e92f59031aa3ab9fff063424df2b6f/redirect", - "size": "185.7 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/6fcca7c2ca377dca6a2d6798085a7cc4/redirect", + "size": "197.8 MB", "sha256": "", - "javaVersion": "11.0.29+7", + "javaVersion": "21.0.9+10", "distribution": "temurin" }, "linux-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/a9e698f4327486f39668bb5c01b462ba/redirect", - "size": "182.6 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/38c9671a7923fe197953c4573014805b/redirect", + "size": "195.8 MB", "sha256": "", - "javaVersion": "11.0.29+7", + "javaVersion": "21.0.9+10", "distribution": "temurin" }, "macos-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/ed24972ec4126a0fb886581fa0385611/redirect", - "size": "178.5 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/d6690dfd71c4c91e08577437b5b2beb0/redirect", + "size": "185.1 MB", "sha256": "", - "javaVersion": "11.0.29+7", + "javaVersion": "21.0.9+10", "distribution": "temurin" }, "macos-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/f69288bf1d4a10477ce75cd1a68293bf/redirect", - "size": "176.0 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/46949723aaa20c7b64d7ecfed7207034/redirect", + "size": "190.6 MB", "sha256": "", - "javaVersion": "11.0.29+7", + "javaVersion": "21.0.9+10", + "distribution": "temurin" + }, + "windows-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/3cd7045fca9a72cd9bc7d14a385e594c/redirect", + "size": "183.7 MB", + "sha256": "", + "javaVersion": "21.0.9+10", "distribution": "temurin" } }, @@ -152,77 +171,70 @@ "distribution": "temurin" } }, - "21": { + "11": { "windows-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/552c7bffe0370c66410a51c55985b511/redirect", - "size": "195.5 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/d581f826b6d8b8d59155be085f36c5ff/redirect", + "size": "190.1 MB", "sha256": "", - "javaVersion": "21.0.9+10", + "javaVersion": "11.0.29+7", "distribution": "temurin" }, "linux-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/6fcca7c2ca377dca6a2d6798085a7cc4/redirect", - "size": "197.8 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/29e92f59031aa3ab9fff063424df2b6f/redirect", + "size": "185.7 MB", "sha256": "", - "javaVersion": "21.0.9+10", + "javaVersion": "11.0.29+7", "distribution": "temurin" }, "linux-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/38c9671a7923fe197953c4573014805b/redirect", - "size": "195.8 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/a9e698f4327486f39668bb5c01b462ba/redirect", + "size": "182.6 MB", "sha256": "", - "javaVersion": "21.0.9+10", + "javaVersion": "11.0.29+7", "distribution": "temurin" }, "macos-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/d6690dfd71c4c91e08577437b5b2beb0/redirect", - "size": "185.1 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/ed24972ec4126a0fb886581fa0385611/redirect", + "size": "178.5 MB", "sha256": "", - "javaVersion": "21.0.9+10", + "javaVersion": "11.0.29+7", "distribution": "temurin" }, "macos-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/46949723aaa20c7b64d7ecfed7207034/redirect", - "size": "190.6 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/f69288bf1d4a10477ce75cd1a68293bf/redirect", + "size": "176.0 MB", "sha256": "", - "javaVersion": "21.0.9+10", + "javaVersion": "11.0.29+7", "distribution": "temurin" } }, - "25": { + "8": { "windows-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/b96cb7670c095245220e7d01d5927b58/redirect", - "size": "134.5 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/4b9217751ba73eb5208c663a2cfe2c5d/redirect", + "size": "102.0 MB", "sha256": "", - "javaVersion": "25.0.1+8", + "javaVersion": "8.0.472+8", "distribution": "temurin" }, "linux-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/5ee463876563a46fff651cce1bc53a4c/redirect", - "size": "134.2 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/a4f0eee30298361b5e5bdf633991daff/redirect", + "size": "96.3 MB", "sha256": "", - "javaVersion": "25.0.1+8", + "javaVersion": "8.0.472+8", "distribution": "temurin" }, "linux-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/c5ee947fbfb70bc347d8d531e3a578c4/redirect", - "size": "133.2 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/8af28cc5e3c004af11c7e3d2f857f876/redirect", + "size": "97.5 MB", "sha256": "", - "javaVersion": "25.0.1+8", + "javaVersion": "8.0.472+8", "distribution": "temurin" }, "macos-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/59a9771cad43219260d9aac9a8ec4d6a/redirect", - "size": "114.7 MB", - "sha256": "", - "javaVersion": "25.0.1+8", - "distribution": "temurin" - }, - "macos-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/e1118b4c7c2858d28154d086dbff010e/redirect", - "size": "130.0 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/dc9716d3e8f8baffc294fb182ceca2c2/redirect", + "size": "104.5 MB", "sha256": "", - "javaVersion": "25.0.1+8", + "javaVersion": "8.0.472+8", "distribution": "temurin" } } @@ -233,77 +245,91 @@ "description": "Enterprise-ready OpenJDK", "recommended": false, "versions": { - "8": { + "25": { "windows-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/f4796da5d96621c98665a7ec11135d3a/redirect", - "size": "104.1 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/d275b78a4f8a9e6e22c3f69e887a0fd6/redirect", + "size": "219.9 MB", "sha256": "", - "javaVersion": "8.0.472+8", + "javaVersion": "25.0.1+8", "distribution": "zulu" }, "linux-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/0501573ce07874e4e9f06178610e5d70/redirect", - "size": "175.3 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/5f31219b14b603e753d9d0d9f1a61d4b/redirect", + "size": "221.6 MB", "sha256": "", - "javaVersion": "8.0.472+8", + "javaVersion": "25.0.1+8", "distribution": "zulu" }, "linux-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/72e51f9fc922cfdf44344d605300e54e/redirect", - "size": "101.3 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/9954264c1ba4f6f987beff48de4c2414/redirect", + "size": "220.7 MB", "sha256": "", - "javaVersion": "8.0.472+8", + "javaVersion": "25.0.1+8", "distribution": "zulu" }, "macos-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/6e22629547a1b52ddbf6938f342534f9/redirect", - "size": "102.0 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/b2153f3df60e10b9fb592039c8fa1061/redirect", + "size": "313.0 MB", "sha256": "", - "javaVersion": "8.0.472+8", + "javaVersion": "25.0.1+8", "distribution": "zulu" }, "macos-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/80ffa0977a1f1509c38f9a5979d94429/redirect", - "size": "99.8 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/9bd55df3cf7caf7ee598ce63d37638f0/redirect", + "size": "304.7 MB", "sha256": "", - "javaVersion": "8.0.472+8", + "javaVersion": "25.0.1+8", + "distribution": "zulu" + }, + "windows-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/832229f0f6f0be60ed817c5a5e5848eb/redirect", + "size": "197.4 MB", + "sha256": "", + "javaVersion": "25.0.1+8", "distribution": "zulu" } }, - "11": { + "21": { "windows-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/d472abb2cd67d2862d5049926410320f/redirect", - "size": "189.8 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/b10efa41b5993aec43f4cd5f94d3583c/redirect", + "size": "201.6 MB", "sha256": "", - "javaVersion": "11.0.29+7", + "javaVersion": "21.0.9+10", "distribution": "zulu" }, "linux-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/2de42a2c77319ce7e896bc005c68cd70/redirect", - "size": "191.0 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/b97708ea99acf28a95552e0dbbab5d66/redirect", + "size": "204.8 MB", "sha256": "", - "javaVersion": "11.0.29+7", + "javaVersion": "21.0.9+10", "distribution": "zulu" }, "linux-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/47327b98f7d1362815fa57b46e362726/redirect", - "size": "295.0 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/3b92007095b647c15e3d947a9f57a789/redirect", + "size": "202.0 MB", "sha256": "", - "javaVersion": "11.0.29+7", + "javaVersion": "21.0.9+10", "distribution": "zulu" }, "macos-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/2cdd114dd7a570e8ab9f0cf71dfcfafc/redirect", - "size": "279.3 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/9f3a843c5c53c2c0edf067fa3e5e4223/redirect", + "size": "293.4 MB", "sha256": "", - "javaVersion": "11.0.29+7", + "javaVersion": "21.0.9+10", "distribution": "zulu" }, "macos-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/f67c3c38cb1557c6c50fd498324e6add/redirect", - "size": "271.5 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/5eca9e7bdece18f5a96c3d1a650084bf/redirect", + "size": "197.1 MB", "sha256": "", - "javaVersion": "11.0.29+7", + "javaVersion": "21.0.9+10", + "distribution": "zulu" + }, + "windows-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/e7f07493b690e7efd5d5bcce5f684777/redirect", + "size": "189.1 MB", + "sha256": "", + "javaVersion": "21.0.9+10", "distribution": "zulu" } }, @@ -342,79 +368,86 @@ "sha256": "", "javaVersion": "17.0.17+10", "distribution": "zulu" + }, + "windows-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/28937bb8a7f83f57de92429a9a11c04e/redirect", + "size": "175.8 MB", + "sha256": "", + "javaVersion": "17.0.17+10", + "distribution": "zulu" } }, - "21": { + "11": { "windows-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/b10efa41b5993aec43f4cd5f94d3583c/redirect", - "size": "201.6 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/d472abb2cd67d2862d5049926410320f/redirect", + "size": "189.8 MB", "sha256": "", - "javaVersion": "21.0.9+10", + "javaVersion": "11.0.29+7", "distribution": "zulu" }, "linux-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/b97708ea99acf28a95552e0dbbab5d66/redirect", - "size": "204.8 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/2de42a2c77319ce7e896bc005c68cd70/redirect", + "size": "191.0 MB", "sha256": "", - "javaVersion": "21.0.9+10", + "javaVersion": "11.0.29+7", "distribution": "zulu" }, "linux-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/3b92007095b647c15e3d947a9f57a789/redirect", - "size": "202.0 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/47327b98f7d1362815fa57b46e362726/redirect", + "size": "295.0 MB", "sha256": "", - "javaVersion": "21.0.9+10", + "javaVersion": "11.0.29+7", "distribution": "zulu" }, "macos-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/9f3a843c5c53c2c0edf067fa3e5e4223/redirect", - "size": "293.4 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/2cdd114dd7a570e8ab9f0cf71dfcfafc/redirect", + "size": "279.3 MB", "sha256": "", - "javaVersion": "21.0.9+10", + "javaVersion": "11.0.29+7", "distribution": "zulu" }, "macos-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/5eca9e7bdece18f5a96c3d1a650084bf/redirect", - "size": "197.1 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/f67c3c38cb1557c6c50fd498324e6add/redirect", + "size": "271.5 MB", "sha256": "", - "javaVersion": "21.0.9+10", + "javaVersion": "11.0.29+7", "distribution": "zulu" } }, - "25": { + "8": { "windows-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/d275b78a4f8a9e6e22c3f69e887a0fd6/redirect", - "size": "219.9 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/f4796da5d96621c98665a7ec11135d3a/redirect", + "size": "104.1 MB", "sha256": "", - "javaVersion": "25.0.1+8", + "javaVersion": "8.0.472+8", "distribution": "zulu" }, "linux-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/5f31219b14b603e753d9d0d9f1a61d4b/redirect", - "size": "221.6 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/0501573ce07874e4e9f06178610e5d70/redirect", + "size": "175.3 MB", "sha256": "", - "javaVersion": "25.0.1+8", + "javaVersion": "8.0.472+8", "distribution": "zulu" }, "linux-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/9954264c1ba4f6f987beff48de4c2414/redirect", - "size": "220.7 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/72e51f9fc922cfdf44344d605300e54e/redirect", + "size": "101.3 MB", "sha256": "", - "javaVersion": "25.0.1+8", + "javaVersion": "8.0.472+8", "distribution": "zulu" }, "macos-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/b2153f3df60e10b9fb592039c8fa1061/redirect", - "size": "313.0 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/6e22629547a1b52ddbf6938f342534f9/redirect", + "size": "102.0 MB", "sha256": "", - "javaVersion": "25.0.1+8", + "javaVersion": "8.0.472+8", "distribution": "zulu" }, "macos-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/9bd55df3cf7caf7ee598ce63d37638f0/redirect", - "size": "304.7 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/80ffa0977a1f1509c38f9a5979d94429/redirect", + "size": "99.8 MB", "sha256": "", - "javaVersion": "25.0.1+8", + "javaVersion": "8.0.472+8", "distribution": "zulu" } } @@ -425,77 +458,77 @@ "description": "Production-ready OpenJDK", "recommended": false, "versions": { - "8": { + "25": { "windows-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/c087a4729c524ea5b7b30b82430a0708/redirect", - "size": "116.3 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/017055f6b0654bba0035d3f09dd46b46/redirect", + "size": "211.4 MB", "sha256": "", - "javaVersion": "8.0.472+8", + "javaVersion": "25.0.1+8", "distribution": "corretto" }, "linux-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/c98f9eb4fcc24900480c16441e527e35/redirect", - "size": "95.9 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/5f276a14e72a675833b96cb75acba5e2/redirect", + "size": "217.6 MB", "sha256": "", - "javaVersion": "8.0.472+8", + "javaVersion": "25.0.1+9", "distribution": "corretto" }, "linux-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/925dd924bb03ab78dc399512bc71365d/redirect", - "size": "97.8 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/cd82e4a03b33fb9175a2bfd53cf31c51/redirect", + "size": "215.2 MB", "sha256": "", - "javaVersion": "8.0.472+8", + "javaVersion": "25.0.1+9", "distribution": "corretto" }, "macos-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/9d87ccba8e4be32f4f124ed3203b1de6/redirect", - "size": "113.6 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/8ac5379f3d1c8a55064fbe8d8d34b6ed/redirect", + "size": "211.1 MB", "sha256": "", - "javaVersion": "8.0.472+8", + "javaVersion": "25.0.1+8", "distribution": "corretto" }, "macos-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/50646dde3c872c79791b65f85867054f/redirect", - "size": "98.7 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/dcd05fddc188f24420f5dceaeaaa33dd/redirect", + "size": "209.0 MB", "sha256": "", - "javaVersion": "8.0.472+8", + "javaVersion": "25.0.1+8", "distribution": "corretto" } }, - "11": { + "21": { "windows-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/644dbfbf959bf1f80acc535ebb13f2c4/redirect", - "size": "180.1 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/e24f7511bc753a0499e443f100864e16/redirect", + "size": "192.7 MB", "sha256": "", - "javaVersion": "11.0.29+7", + "javaVersion": "21.0.9+10", "distribution": "corretto" }, "linux-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/fa46eb35e3ff98c28aeb88b9b2ddc944/redirect", - "size": "186.0 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/2e567795262c8aa8db35db07318f3a86/redirect", + "size": "199.8 MB", "sha256": "", - "javaVersion": "11.0.29+7", + "javaVersion": "21.0.9+11", "distribution": "corretto" }, "linux-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/fa2010638089d28a06bf024a07f7e08e/redirect", - "size": "184.2 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/14666a19c360bb62ffe5941534b1af7c/redirect", + "size": "197.5 MB", "sha256": "", - "javaVersion": "11.0.29+7", + "javaVersion": "21.0.9+11", "distribution": "corretto" }, "macos-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/7bee55c4ff8ede1f37b58c689186ffb8/redirect", - "size": "178.8 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/4114eadaec57ab5e46004b5eb16dc32f/redirect", + "size": "193.3 MB", "sha256": "", - "javaVersion": "11.0.29+7", + "javaVersion": "21.0.9+10", "distribution": "corretto" }, "macos-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/0564074facce13ffa1736cd28584aac4/redirect", - "size": "176.8 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/90d0136d4f392609b1dec0bb9615aa56/redirect", + "size": "191.6 MB", "sha256": "", - "javaVersion": "11.0.29+7", + "javaVersion": "21.0.9+10", "distribution": "corretto" } }, @@ -536,81 +569,911 @@ "distribution": "corretto" } }, - "21": { + "11": { "windows-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/e24f7511bc753a0499e443f100864e16/redirect", - "size": "192.7 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/644dbfbf959bf1f80acc535ebb13f2c4/redirect", + "size": "180.1 MB", "sha256": "", - "javaVersion": "21.0.9+10", + "javaVersion": "11.0.29+7", "distribution": "corretto" }, "linux-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/2e567795262c8aa8db35db07318f3a86/redirect", - "size": "199.8 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/fa46eb35e3ff98c28aeb88b9b2ddc944/redirect", + "size": "186.0 MB", "sha256": "", - "javaVersion": "21.0.9+11", + "javaVersion": "11.0.29+7", "distribution": "corretto" }, "linux-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/14666a19c360bb62ffe5941534b1af7c/redirect", - "size": "197.5 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/fa2010638089d28a06bf024a07f7e08e/redirect", + "size": "184.2 MB", "sha256": "", - "javaVersion": "21.0.9+11", + "javaVersion": "11.0.29+7", "distribution": "corretto" }, "macos-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/4114eadaec57ab5e46004b5eb16dc32f/redirect", - "size": "193.3 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/7bee55c4ff8ede1f37b58c689186ffb8/redirect", + "size": "178.8 MB", "sha256": "", - "javaVersion": "21.0.9+10", + "javaVersion": "11.0.29+7", "distribution": "corretto" }, "macos-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/90d0136d4f392609b1dec0bb9615aa56/redirect", - "size": "191.6 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/0564074facce13ffa1736cd28584aac4/redirect", + "size": "176.8 MB", "sha256": "", - "javaVersion": "21.0.9+10", + "javaVersion": "11.0.29+7", "distribution": "corretto" } }, - "25": { + "8": { "windows-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/017055f6b0654bba0035d3f09dd46b46/redirect", - "size": "211.4 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/c087a4729c524ea5b7b30b82430a0708/redirect", + "size": "116.3 MB", "sha256": "", - "javaVersion": "25.0.1+8", + "javaVersion": "8.0.472+8", "distribution": "corretto" }, "linux-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/5f276a14e72a675833b96cb75acba5e2/redirect", - "size": "217.6 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/c98f9eb4fcc24900480c16441e527e35/redirect", + "size": "95.9 MB", "sha256": "", - "javaVersion": "25.0.1+9", + "javaVersion": "8.0.472+8", "distribution": "corretto" }, "linux-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/cd82e4a03b33fb9175a2bfd53cf31c51/redirect", - "size": "215.2 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/925dd924bb03ab78dc399512bc71365d/redirect", + "size": "97.8 MB", "sha256": "", - "javaVersion": "25.0.1+9", + "javaVersion": "8.0.472+8", "distribution": "corretto" }, "macos-x64": { - "url": "https://api.foojay.io/disco/v3.0/ids/8ac5379f3d1c8a55064fbe8d8d34b6ed/redirect", - "size": "211.1 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/9d87ccba8e4be32f4f124ed3203b1de6/redirect", + "size": "113.6 MB", "sha256": "", - "javaVersion": "25.0.1+8", + "javaVersion": "8.0.472+8", "distribution": "corretto" }, "macos-arm64": { - "url": "https://api.foojay.io/disco/v3.0/ids/dcd05fddc188f24420f5dceaeaaa33dd/redirect", - "size": "209.0 MB", + "url": "https://api.foojay.io/disco/v3.0/ids/50646dde3c872c79791b65f85867054f/redirect", + "size": "98.7 MB", "sha256": "", - "javaVersion": "25.0.1+8", + "javaVersion": "8.0.472+8", "distribution": "corretto" } } } + }, + "liberica": { + "name": "BellSoft Liberica", + "description": "Flexible OpenJDK builds", + "recommended": false, + "versions": { + "25": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/b51fcf46dd63b26de7249ddc3180dcc8/redirect", + "size": "78.8 MB", + "sha256": "", + "javaVersion": "25.0.1+13", + "distribution": "liberica" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/d5dbbb661c4db4a7f5499a9b3db7f2aa/redirect", + "size": "247.9 MB", + "sha256": "", + "javaVersion": "25.0.1+13", + "distribution": "liberica" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/831a344fe7117e3fa59b6b6b83ccd16d/redirect", + "size": "244.5 MB", + "sha256": "", + "javaVersion": "25.0.1+13", + "distribution": "liberica" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/916643921c519bf449317cfc02ac937a/redirect", + "size": "78.1 MB", + "sha256": "", + "javaVersion": "25.0.1+13", + "distribution": "liberica" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/52aa396d579cee053ea6c91f23f24d4f/redirect", + "size": "76.8 MB", + "sha256": "", + "javaVersion": "25.0.1+13", + "distribution": "liberica" + }, + "windows-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/d447875a3e8464a066d6f4ceeaf04fc2/redirect", + "size": "76.3 MB", + "sha256": "", + "javaVersion": "25.0.1+13", + "distribution": "liberica" + } + }, + "21": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/00ed7e223d52392be368b57241dbb09c/redirect", + "size": "74.2 MB", + "sha256": "", + "javaVersion": "21.0.9+15", + "distribution": "liberica" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/5977349a2b2077729aef0eaff9482dd3/redirect", + "size": "220.2 MB", + "sha256": "", + "javaVersion": "21.0.9+15", + "distribution": "liberica" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/f241d1bee4a60848445361cb094e09b4/redirect", + "size": "73.7 MB", + "sha256": "", + "javaVersion": "21.0.9+15", + "distribution": "liberica" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/2b5a914fd54334bb2d3b86e74cf685c8/redirect", + "size": "208.4 MB", + "sha256": "", + "javaVersion": "21.0.9+15", + "distribution": "liberica" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/6ccdc45dda2654b3429e8dc6d296b64a/redirect", + "size": "72.4 MB", + "sha256": "", + "javaVersion": "21.0.9+15", + "distribution": "liberica" + }, + "windows-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/1b3bd6fcceeb4840425fe4b4d41aadc3/redirect", + "size": "188.1 MB", + "sha256": "", + "javaVersion": "21.0.9+15", + "distribution": "liberica" + } + }, + "17": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/a8f5f00a733693d29c21a02bfa10a8b9/redirect", + "size": "68.5 MB", + "sha256": "", + "javaVersion": "17.0.17+15", + "distribution": "liberica" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/a0cbd3bc38a4186e27407476bd821425/redirect", + "size": "68.6 MB", + "sha256": "", + "javaVersion": "17.0.17+15", + "distribution": "liberica" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/682a14a8a6b33c0be3ea0a2af30fb2e5/redirect", + "size": "68.0 MB", + "sha256": "", + "javaVersion": "17.0.17+15", + "distribution": "liberica" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/2fcbaa5f62d4a20929f85083fbbf752c/redirect", + "size": "193.4 MB", + "sha256": "", + "javaVersion": "17.0.17+15", + "distribution": "liberica" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/1a8acf44095b20404945a48924035d1a/redirect", + "size": "190.9 MB", + "sha256": "", + "javaVersion": "17.0.17+15", + "distribution": "liberica" + }, + "windows-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/b4efb16314e5a2d5dd0b2cc43cbdf13e/redirect", + "size": "174.7 MB", + "sha256": "", + "javaVersion": "17.0.17+15", + "distribution": "liberica" + } + }, + "11": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/1d2c64aa8ddf7a50ad2beecb365b5251/redirect", + "size": "70.6 MB", + "sha256": "", + "javaVersion": "11.0.29+12", + "distribution": "liberica" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/10831de4965696f023e5df3f90174822/redirect", + "size": "71.3 MB", + "sha256": "", + "javaVersion": "11.0.29+12", + "distribution": "liberica" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/0e2ee4220962030fd473815392f0f4fb/redirect", + "size": "70.8 MB", + "sha256": "", + "javaVersion": "11.0.29+12", + "distribution": "liberica" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/9e46a9bdde1385fc224c3f43a5493c9d/redirect", + "size": "69.3 MB", + "sha256": "", + "javaVersion": "11.0.29+12", + "distribution": "liberica" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/b8d5f245d69da53d9d13d25e319e849d/redirect", + "size": "181.2 MB", + "sha256": "", + "javaVersion": "11.0.29+12", + "distribution": "liberica" + }, + "windows-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/cc2c3ccf18415ef734382f869676673b/redirect", + "size": "183.9 MB", + "sha256": "", + "javaVersion": "11.0.29+12", + "distribution": "liberica" + } + }, + "8": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/3ff6dd4ee31ebb68b1665a53b8e8d54f/redirect", + "size": "51.3 MB", + "sha256": "", + "javaVersion": "8.0.472+11", + "distribution": "liberica" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/12288f92140c2de2ae46210d48bfe4f3/redirect", + "size": "101.9 MB", + "sha256": "", + "javaVersion": "8.0.472+11", + "distribution": "liberica" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/3ba7b2a99de8e8052a5ff50765c59720/redirect", + "size": "99.9 MB", + "sha256": "", + "javaVersion": "8.0.472+11", + "distribution": "liberica" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/b744a1a6c4cadbbaad12a286e0514ed7/redirect", + "size": "51.0 MB", + "sha256": "", + "javaVersion": "8.0.472+11", + "distribution": "liberica" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/9177a6fdc72de9b0d1208c0490989a37/redirect", + "size": "99.6 MB", + "sha256": "", + "javaVersion": "8.0.472+11", + "distribution": "liberica" + } + } + } + }, + "microsoft": { + "name": "Microsoft Build of OpenJDK", + "description": "Microsoft's OpenJDK", + "recommended": false, + "versions": { + "25": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/2a14787ba659bd0a0d7122ccea274b56/redirect", + "size": "210.3 MB", + "sha256": "", + "javaVersion": "25.0.1", + "distribution": "microsoft" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/4a6d1575504f70396d9f0cd9492f0a9e/redirect", + "size": "213.8 MB", + "sha256": "", + "javaVersion": "25.0.1", + "distribution": "microsoft" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/9e24ee2f16adcea67b2d72ad30d65776/redirect", + "size": "211.8 MB", + "sha256": "", + "javaVersion": "25.0.1", + "distribution": "microsoft" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/fc0ecc280e632c3599fbdb0813527372/redirect", + "size": "210.0 MB", + "sha256": "", + "javaVersion": "25.0.1", + "distribution": "microsoft" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/6887cfddd25979bfa958717b2fb64983/redirect", + "size": "207.5 MB", + "sha256": "", + "javaVersion": "25.0.1", + "distribution": "microsoft" + }, + "windows-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/b03a88342b0a83c02211fcbf7ddaf25a/redirect", + "size": "205.5 MB", + "sha256": "", + "javaVersion": "25.0.1", + "distribution": "microsoft" + } + }, + "21": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/c1657c8c177c5239d1dee098950ce961/redirect", + "size": "191.6 MB", + "sha256": "", + "javaVersion": "21.0.9", + "distribution": "microsoft" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/952dbdd3f95dda9dc0709bc891206f1f/redirect", + "size": "196.7 MB", + "sha256": "", + "javaVersion": "21.0.9", + "distribution": "microsoft" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/d1cdf34033d69f8d4f43c91ee68af29f/redirect", + "size": "195.0 MB", + "sha256": "", + "javaVersion": "21.0.9", + "distribution": "microsoft" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/3c9b911fffca526315550d45861cdc3f/redirect", + "size": "192.9 MB", + "sha256": "", + "javaVersion": "21.0.9", + "distribution": "microsoft" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/a278f10e4aa15951649a32f0d45debe2/redirect", + "size": "190.6 MB", + "sha256": "", + "javaVersion": "21.0.9", + "distribution": "microsoft" + }, + "windows-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/5ea5df3bae5cc1f1132a244de5c3feda/redirect", + "size": "183.6 MB", + "sha256": "", + "javaVersion": "21.0.9", + "distribution": "microsoft" + } + }, + "17": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/640a479b2f1c2dfdd32fdfc21d88d94e/redirect", + "size": "178.1 MB", + "sha256": "", + "javaVersion": "17.0.17", + "distribution": "microsoft" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/fe4a39341ca2bfc01b08545f80d015b7/redirect", + "size": "184.0 MB", + "sha256": "", + "javaVersion": "17.0.17", + "distribution": "microsoft" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/189b84b6eb4f780ff60a32f090f3f888/redirect", + "size": "181.4 MB", + "sha256": "", + "javaVersion": "17.0.17", + "distribution": "microsoft" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/6e353e507d47cc8ce6f84d7f9455df55/redirect", + "size": "179.2 MB", + "sha256": "", + "javaVersion": "17.0.17", + "distribution": "microsoft" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/846312f9483eed813ab76222eba229fb/redirect", + "size": "177.3 MB", + "sha256": "", + "javaVersion": "17.0.17", + "distribution": "microsoft" + }, + "windows-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/e537c615fc8bc77b59d4db1ae6f3b7ec/redirect", + "size": "170.6 MB", + "sha256": "", + "javaVersion": "17.0.17", + "distribution": "microsoft" + } + }, + "11": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/e858c723d023e0d2c2468a7462f1b55b/redirect", + "size": "182.3 MB", + "sha256": "", + "javaVersion": "11.0.29", + "distribution": "microsoft" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/adebbb628a139160e7dc795b4084eec3/redirect", + "size": "188.7 MB", + "sha256": "", + "javaVersion": "11.0.29", + "distribution": "microsoft" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/5aeb1516b586da88968fb51d94031204/redirect", + "size": "186.2 MB", + "sha256": "", + "javaVersion": "11.0.29", + "distribution": "microsoft" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/c58da0dfc2ecab4d0fcb8bd4b7be6781/redirect", + "size": "182.1 MB", + "sha256": "", + "javaVersion": "11.0.29", + "distribution": "microsoft" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/d3a66ffad981442dad278b6bf5ca61e4/redirect", + "size": "176.6 MB", + "sha256": "", + "javaVersion": "11.0.29", + "distribution": "microsoft" + }, + "windows-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/db0965a0340bbfd0fbadfb3bbbc27a59/redirect", + "size": "178.1 MB", + "sha256": "", + "javaVersion": "11.0.29", + "distribution": "microsoft" + } + } + } + }, + "oracle_open_jdk": { + "name": "Oracle OpenJDK", + "description": "Official OpenJDK builds", + "recommended": false, + "versions": { + "25": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/618cc176d38cad38fbf8d16037ce2fbe/redirect", + "size": "211.4 MB", + "sha256": "", + "javaVersion": "25.0.1+8", + "distribution": "oracle_open_jdk" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/5341667cb67e31ebea566a28a33e8c9f/redirect", + "size": "212.2 MB", + "sha256": "", + "javaVersion": "25.0.1+8", + "distribution": "oracle_open_jdk" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/8435992d8c4fc4eb98bd92fd8149c5cb/redirect", + "size": "210.0 MB", + "sha256": "", + "javaVersion": "25.0.1+8", + "distribution": "oracle_open_jdk" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/f5a0fab2b613a21586f6105cf4b4b823/redirect", + "size": "207.6 MB", + "sha256": "", + "javaVersion": "25.0.1+8", + "distribution": "oracle_open_jdk" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/0f9f3525546913b4917e7f4971cfd2a1/redirect", + "size": "205.4 MB", + "sha256": "", + "javaVersion": "25.0.1+8", + "distribution": "oracle_open_jdk" + } + }, + "21": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/10987b9025e5703fd0371a908aed9243/redirect", + "size": "192.0 MB", + "sha256": "", + "javaVersion": "21.0.2+13", + "distribution": "oracle_open_jdk" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/d9860c84f5bfba01793e5c60d3f4b531/redirect", + "size": "194.2 MB", + "sha256": "", + "javaVersion": "21.0.2+13", + "distribution": "oracle_open_jdk" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/3b229f4037ddd54a404cc0f14fe7b485/redirect", + "size": "192.5 MB", + "sha256": "", + "javaVersion": "21.0.2+13", + "distribution": "oracle_open_jdk" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/a3ccac19d753e57e6ad2e56df868aa58/redirect", + "size": "190.6 MB", + "sha256": "", + "javaVersion": "21.0.2+13", + "distribution": "oracle_open_jdk" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/5688013a87b605f5439414c4ab0925d4/redirect", + "size": "188.4 MB", + "sha256": "", + "javaVersion": "21.0.2+13", + "distribution": "oracle_open_jdk" + } + }, + "17": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/0af280721ac8be3d43c91fe53eb5db2d/redirect", + "size": "177.6 MB", + "sha256": "", + "javaVersion": "17.0.2+8", + "distribution": "oracle_open_jdk" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/6a793b5908f974cc15c98b18d3dc28c4/redirect", + "size": "178.4 MB", + "sha256": "", + "javaVersion": "17.0.2+8", + "distribution": "oracle_open_jdk" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/aef9e91368485a552b261ab4a13492bc/redirect", + "size": "177.2 MB", + "sha256": "", + "javaVersion": "17.0.2+8", + "distribution": "oracle_open_jdk" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/e1a689de49e27b404bb3e41deb0cb047/redirect", + "size": "175.9 MB", + "sha256": "", + "javaVersion": "17.0.2+8", + "distribution": "oracle_open_jdk" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/1a2eae7b91e573f3241d75c355e0c773/redirect", + "size": "173.8 MB", + "sha256": "", + "javaVersion": "17.0.2+8", + "distribution": "oracle_open_jdk" + } + }, + "11": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/e2fe8d08709ad287208daf643c26ff18/redirect", + "size": "185.1 MB", + "sha256": "", + "javaVersion": "11.0.16+8", + "distribution": "oracle_open_jdk" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/288d17103d016678905326d6a17298a9/redirect", + "size": "188.8 MB", + "sha256": "", + "javaVersion": "11.0.16+8", + "distribution": "oracle_open_jdk" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/514c2d0773787c77ddeaeef077b0cf6c/redirect", + "size": "186.8 MB", + "sha256": "", + "javaVersion": "11.0.16+8", + "distribution": "oracle_open_jdk" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/04fe3c5dcd0c4a21fb8f05ceb33734f8/redirect", + "size": "174.2 MB", + "sha256": "", + "javaVersion": "11.0.2+9", + "distribution": "oracle_open_jdk" + } + }, + "8": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/d3172fb5d99e4b4a0d6060dfbf07dc22/redirect", + "size": "100.2 MB", + "sha256": "", + "javaVersion": "8.0.342+7", + "distribution": "oracle_open_jdk" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/5702a70e4f89f35cd86bd79b00c25cbd/redirect", + "size": "100.7 MB", + "sha256": "", + "javaVersion": "8.0.342+7", + "distribution": "oracle_open_jdk" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/8b270ef6b13926b371ef77f63b5a8da1/redirect", + "size": "99.6 MB", + "sha256": "", + "javaVersion": "8.0.342+7", + "distribution": "oracle_open_jdk" + } + } + } + }, + "sapmachine": { + "name": "SapMachine", + "description": "SAP's OpenJDK", + "recommended": false, + "versions": { + "25": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/c9b550e6a5270e53ca61ae989845003f/redirect", + "size": "210.1 MB", + "sha256": "", + "javaVersion": "25.0.1", + "distribution": "sap_machine" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/a9992a0bd7a71bea24ee8bb702e22e94/redirect", + "size": "204.5 MB", + "sha256": "", + "javaVersion": "25.0.1", + "distribution": "sap_machine" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/e7376dc8558b100aeb85f72300cb954f/redirect", + "size": "202.0 MB", + "sha256": "", + "javaVersion": "25.0.1", + "distribution": "sap_machine" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/d8501b8d73d38c7d1e129fd69f34de74/redirect", + "size": "195.6 MB", + "sha256": "", + "javaVersion": "25.0.1", + "distribution": "sap_machine" + } + }, + "21": { + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/6511fc6a7f97e5035a7d16c8208d8e87/redirect", + "size": "199.4 MB", + "sha256": "", + "javaVersion": "21.0.9", + "distribution": "sap_machine" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/070acaeac253b5346131d57bd952e036/redirect", + "size": "197.7 MB", + "sha256": "", + "javaVersion": "21.0.9", + "distribution": "sap_machine" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/9d0a4818ab6b8d96d8d31f861863aad1/redirect", + "size": "193.4 MB", + "sha256": "", + "javaVersion": "21.0.9", + "distribution": "sap_machine" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/ef421352c753971aed9a1f21274e1cf7/redirect", + "size": "191.3 MB", + "sha256": "", + "javaVersion": "21.0.9", + "distribution": "sap_machine" + } + }, + "17": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/197f7e8a6860227e577005301030c800/redirect", + "size": "188.3 MB", + "sha256": "", + "javaVersion": "17.0.17", + "distribution": "sap_machine" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/bb6a414d6f0056986bed9aca11144849/redirect", + "size": "184.9 MB", + "sha256": "", + "javaVersion": "17.0.17", + "distribution": "sap_machine" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/e88c88ea605ef403a394d1f8fb5ef2a1/redirect", + "size": "184.6 MB", + "sha256": "", + "javaVersion": "17.0.17", + "distribution": "sap_machine" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/ec7de2acd9072a73a98bb2d413976485/redirect", + "size": "179.9 MB", + "sha256": "", + "javaVersion": "17.0.17", + "distribution": "sap_machine" + } + }, + "11": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/213048fd95c9b996a6050fb739bb510f/redirect", + "size": "189.8 MB", + "sha256": "", + "javaVersion": "11.0.25", + "distribution": "sap_machine" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/dbb9ed8191317162f352f1bbd3457315/redirect", + "size": "184.6 MB", + "sha256": "", + "javaVersion": "11.0.29", + "distribution": "sap_machine" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/0364b9b029d924f351de16d7adf84f04/redirect", + "size": "183.6 MB", + "sha256": "", + "javaVersion": "11.0.25", + "distribution": "sap_machine" + }, + "macos-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/265d15c6c00538e989d89d7969913974/redirect", + "size": "179.2 MB", + "sha256": "", + "javaVersion": "11.0.25", + "distribution": "sap_machine" + }, + "macos-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/13c40a9151db46a8e371edbc9781ce88/redirect", + "size": "177.4 MB", + "sha256": "", + "javaVersion": "11.0.25", + "distribution": "sap_machine" + } + } + } + }, + "dragonwell": { + "name": "Alibaba Dragonwell", + "description": "Alibaba's OpenJDK", + "recommended": false, + "versions": { + "25": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/eb23c5220c4fd9733c3340edf3975f11/redirect", + "size": "212.5 MB", + "sha256": "", + "javaVersion": "25", + "distribution": "dragonwell" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/eb34bcfd64aab8972acd9d784308c501/redirect", + "size": "214.1 MB", + "sha256": "", + "javaVersion": "25", + "distribution": "dragonwell" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/1a9fe845dfb89ff32141081bdf697dea/redirect", + "size": "212.8 MB", + "sha256": "", + "javaVersion": "25", + "distribution": "dragonwell" + } + }, + "21": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/6dd62c0b6b0d59e147b12201eb9a69c4/redirect", + "size": "202.4 MB", + "sha256": "", + "javaVersion": "21.0.9", + "distribution": "dragonwell" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/366b325504ff77e0d963eb6a51cb0dac/redirect", + "size": "197.7 MB", + "sha256": "", + "javaVersion": "21.0.9", + "distribution": "dragonwell" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/f63ded7817d730c47a501c72392cbef4/redirect", + "size": "196.0 MB", + "sha256": "", + "javaVersion": "21.0.9", + "distribution": "dragonwell" + } + }, + "17": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/8684c1e43bd81a244af47257d4c34edb/redirect", + "size": "180.4 MB", + "sha256": "", + "javaVersion": "17.0.17", + "distribution": "dragonwell" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/f6bcd22297f155e13d0a05b2d87eb3e4/redirect", + "size": "183.1 MB", + "sha256": "", + "javaVersion": "17.0.17", + "distribution": "dragonwell" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/62452ddb0c9116555d9993bb36ecd05c/redirect", + "size": "181.9 MB", + "sha256": "", + "javaVersion": "17.0.17", + "distribution": "dragonwell" + } + }, + "11": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/d2800a9f90875d8d3fe53a60996abeaf/redirect", + "size": "182.3 MB", + "sha256": "", + "javaVersion": "11.0.29", + "distribution": "dragonwell" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/a06dda37adc74316175b865fe00adc89/redirect", + "size": "185.8 MB", + "sha256": "", + "javaVersion": "11.0.29", + "distribution": "dragonwell" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/0a9569a64929807c21cf56c8af33314d/redirect", + "size": "182.1 MB", + "sha256": "", + "javaVersion": "11.0.29", + "distribution": "dragonwell" + } + }, + "8": { + "windows-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/199baf744e02ba078075de2b1991ba2a/redirect", + "size": "99.2 MB", + "sha256": "", + "javaVersion": "8.0.472", + "distribution": "dragonwell" + }, + "linux-x64": { + "url": "https://api.foojay.io/disco/v3.0/ids/66e768002becf9f723e000157be8c18c/redirect", + "size": "98.1 MB", + "sha256": "", + "javaVersion": "8.0.472", + "distribution": "dragonwell" + }, + "linux-arm64": { + "url": "https://api.foojay.io/disco/v3.0/ids/bf12c5a17328600c640327a775e36b08/redirect", + "size": "97.5 MB", + "sha256": "", + "javaVersion": "8.0.472", + "distribution": "dragonwell" + } + } + } } } } diff --git a/landing-page/scripts/fetch-jdk-links.js b/landing-page/scripts/fetch-jdk-links.js deleted file mode 100644 index 02eaf5a..0000000 --- a/landing-page/scripts/fetch-jdk-links.js +++ /dev/null @@ -1,229 +0,0 @@ -#!/usr/bin/env node -/** - * Fetch JDK download links from Foojay DiscoAPI - * and update data/jdk.json - */ - -const fs = require('fs').promises; -const path = require('path'); - -const PLATFORMS = ['windows-x64', 'linux-x64', 'linux-arm64', 'macos-x64', 'macos-arm64']; -const JDK_VERSIONS = [8, 11, 17, 21, 25]; // LTS + latest versions - -// JDK distributions to fetch (from Foojay) -// For testing, limit to 3 main distributions -const DISTRIBUTIONS = [ - { id: 'temurin', name: 'Eclipse Temurin', desc: 'Most popular open-source JDK', recommended: true }, - { id: 'zulu', name: 'Azul Zulu', desc: 'Enterprise-ready OpenJDK' }, - { id: 'corretto', name: 'Amazon Corretto', desc: 'Production-ready OpenJDK' } - // Uncomment below for full list - // { id: 'liberica', name: 'BellSoft Liberica', desc: 'Flexible OpenJDK builds' }, - // { id: 'microsoft', name: 'Microsoft Build of OpenJDK', desc: 'Microsoft\'s OpenJDK' }, - // { id: 'oracle_open_jdk', name: 'Oracle OpenJDK', desc: 'Official OpenJDK builds' }, - // { id: 'graalvm_ce17', name: 'GraalVM CE 17', desc: 'High-performance runtime' }, - // { id: 'graalvm_ce21', name: 'GraalVM CE 21', desc: 'High-performance runtime' }, - // { id: 'sapmachine', name: 'SapMachine', desc: 'SAP\'s OpenJDK' }, - // { id: 'dragonwell', name: 'Alibaba Dragonwell', desc: 'Alibaba\'s OpenJDK' } -]; - -// Platform mapping for different APIs -const PLATFORM_MAP = { - 'windows-x64': { foojay: { os: 'windows', arch: 'x64' }, jenv: 'windows-x86_64' }, - 'linux-x64': { foojay: { os: 'linux', arch: 'x64' }, jenv: 'linux-x86_64' }, - 'linux-arm64': { foojay: { os: 'linux', arch: 'aarch64' }, jenv: 'linux-aarch_64' }, - 'macos-x64': { foojay: { os: 'macos', arch: 'x64' }, jenv: 'osx-x86_64' }, - 'macos-arm64': { foojay: { os: 'macos', arch: 'aarch64' }, jenv: 'osx-aarch_64' } -}; - -/** - * Fetch with retry logic - */ -async function fetchWithRetry(url, options = {}, retries = 3) { - for (let i = 0; i < retries; i++) { - try { - const response = await fetch(url, options); - if (!response.ok) { - throw new Error(`HTTP ${response.status}: ${response.statusText}`); - } - return await response.json(); - } catch (error) { - console.error(`Attempt ${i + 1} failed for ${url}:`, error.message); - if (i === retries - 1) throw error; - await new Promise(resolve => setTimeout(resolve, 1000 * (i + 1))); - } - } -} - -/** - * Fetch JEnv releases from GitHub - */ -async function fetchJenvReleases() { - console.log('Fetching JEnv releases...'); - const url = 'https://api.github.com/repos/WhyWhatHow/jenv/releases/latest'; - const data = await fetchWithRetry(url, { - headers: { - 'User-Agent': 'jenv-landing-fetcher', - 'Accept': 'application/vnd.github.v3+json' - } - }); - - const version = data.tag_name.replace('v', ''); - const platforms = {}; - - for (const platform of PLATFORMS) { - const platformKey = PLATFORM_MAP[platform].jenv; - const asset = data.assets.find(a => a.name.includes(platformKey)); - - if (asset) { - platforms[platform] = { - url: asset.browser_download_url, - size: formatBytes(asset.size), - sha256: '' // GitHub doesn't provide SHA256 in API - }; - } - } - - return { version, platforms }; -} - -/** - * Fetch JDK from Foojay DiscoAPI - */ -async function fetchFoojayJDK(distribution, version, platform) { - const { os, arch } = PLATFORM_MAP[platform].foojay; - - // Build query parameters - const params = new URLSearchParams({ - version: version, - distribution: distribution, - operating_system: os, - architecture: arch, - archive_type: os === 'windows' ? 'zip' : 'tar.gz', - package_type: 'jdk', - latest: 'available', - release_status: 'ga' - }); - - const url = `https://api.foojay.io/disco/v3.0/packages?${params}`; - - try { - const data = await fetchWithRetry(url); - if (!data || !data.result || data.result.length === 0) { - console.warn(`No Foojay JDK found for ${distribution} ${version} on ${platform}`); - return null; - } - - // Get the first (latest) package - const pkg = data.result[0]; - return { - url: pkg.links?.pkg_download_redirect || pkg.filename, - size: formatBytes(pkg.size || 0), - sha256: pkg.checksum || '', - javaVersion: pkg.java_version, - distribution: pkg.distribution - }; - } catch (error) { - console.error(`Failed to fetch Foojay ${distribution} JDK ${version} for ${platform}:`, error.message); - return null; - } -} - -/** - * Fetch all versions for a distribution - */ -async function fetchDistributionData(dist) { - console.log(`Fetching ${dist.name}...`); - const versions = {}; - - for (const version of JDK_VERSIONS) { - // Skip incompatible versions - if (dist.id === 'graalvm_ce17' && version !== 17) continue; - if (dist.id === 'graalvm_ce21' && version !== 21) continue; - - console.log(` JDK ${version}...`); - versions[version] = {}; - - for (const platform of PLATFORMS) { - const jdk = await fetchFoojayJDK(dist.id, version, platform); - if (jdk) { - versions[version][platform] = jdk; - } - // Small delay to avoid rate limiting - await new Promise(resolve => setTimeout(resolve, 100)); - } - } - - return { - name: dist.name, - description: dist.desc, - recommended: dist.recommended || false, - versions - }; -} - -/** - * Format bytes to human-readable size - */ -function formatBytes(bytes) { - if (bytes < 1024) return bytes + ' B'; - if (bytes < 1048576) return (bytes / 1024).toFixed(1) + ' KB'; - return (bytes / 1048576).toFixed(1) + ' MB'; -} - -/** - * Main function - */ -async function main() { - try { - console.log('Starting JDK links fetch from Foojay DiscoAPI...\n'); - - // Fetch JEnv releases - const jenv = await fetchJenvReleases(); - console.log(`✓ JEnv version ${jenv.version} fetched\n`); - - // Fetch JDK distributions - const distributions = {}; - for (const dist of DISTRIBUTIONS) { - const distData = await fetchDistributionData(dist); - distributions[dist.id] = distData; - console.log(`✓ ${dist.name} fetched\n`); - } - - // Build final JSON - const output = { - lastUpdated: new Date().toISOString(), - jenv, - jdk: { - versions: JDK_VERSIONS, - recommended: [11, 17], - distributions - } - }; - - // Write to file - const outputPath = path.join(__dirname, '../data/jdk.json'); - await fs.writeFile(outputPath, JSON.stringify(output, null, 2)); - console.log('✓ data/jdk.json updated successfully'); - - // Print summary - console.log('\nSummary:'); - console.log(` JEnv version: ${jenv.version}`); - console.log(` JEnv platforms: ${Object.keys(jenv.platforms).length}`); - console.log(` JDK versions: ${JDK_VERSIONS.length}`); - console.log(` Distributions: ${Object.keys(distributions).length}`); - - // Print distribution stats - console.log('\nDistributions:'); - for (const [id, dist] of Object.entries(distributions)) { - const versionCount = Object.keys(dist.versions).length; - console.log(` - ${dist.name}: ${versionCount} versions`); - } - - } catch (error) { - console.error('\n❌ Error:', error.message); - console.error(error.stack); - process.exit(1); - } -} - -main(); diff --git a/landing-page/scripts/fetch_jdks.py b/landing-page/scripts/fetch_jdks.py new file mode 100644 index 0000000..f115a48 --- /dev/null +++ b/landing-page/scripts/fetch_jdks.py @@ -0,0 +1,167 @@ +#!/usr/bin/env python +import json +import os +import requests +from datetime import datetime, timezone + +PLATFORMS = ['windows-x64', 'linux-x64', 'linux-arm64', 'macos-x64', 'macos-arm64', 'windows-arm64'] +DISTRIBUTIONS = [ + {'id': 'temurin', 'name': 'Eclipse Temurin', 'desc': 'Most popular open-source JDK', 'recommended': True}, + {'id': 'zulu', 'name': 'Azul Zulu', 'desc': 'Enterprise-ready OpenJDK'}, + {'id': 'corretto', 'name': 'Amazon Corretto', 'desc': 'Production-ready OpenJDK'}, + {'id': 'liberica', 'name': 'BellSoft Liberica', 'desc': 'Flexible OpenJDK builds' }, + {'id': 'microsoft', 'name': 'Microsoft Build of OpenJDK', 'desc': 'Microsoft\'s OpenJDK' }, + {'id': 'oracle_open_jdk', 'name': 'Oracle OpenJDK', 'desc': 'Official OpenJDK builds' }, + {'id': 'sapmachine', 'name': 'SapMachine', 'desc': 'SAP\'s OpenJDK' }, + {'id': 'dragonwell', 'name': 'Alibaba Dragonwell', 'desc': 'Alibaba\'s OpenJDK' } +] +PLATFORM_MAP = { + 'windows-x64': {'foojay': {'os': 'windows', 'arch': 'x64'}, 'jenv': 'windows-x86_64'}, + 'linux-x64': {'foojay': {'os': 'linux', 'arch': 'x64'}, 'jenv': 'linux-x86_64'}, + 'linux-arm64': {'foojay': {'os': 'linux', 'arch': 'aarch64'}, 'jenv': 'linux-aarch_64'}, + 'macos-x64': {'foojay': {'os': 'macos', 'arch': 'x64'}, 'jenv': 'osx-x86_64'}, + 'macos-arm64': {'foojay': {'os': 'macos', 'arch': 'aarch64'}, 'jenv': 'osx-aarch_64'}, + 'windows-arm64': {'foojay': {'os': 'windows', 'arch': 'aarch64'}, 'jenv': 'windows-aarch_64'} +} + +def fetch_with_retry(url, headers=None, retries=3): + for i in range(retries): + try: + response = requests.get(url, headers=headers) + response.raise_for_status() + return response.json() + except requests.exceptions.RequestException as e: + print(f"Attempt {i + 1} failed for {url}: {e}") + if i == retries - 1: + raise + import time + time.sleep(1 * (i + 1)) + +def fetch_jenv_releases(): + print('Fetching JEnv releases...') + url = 'https://api.github.com/repos/WhyWhatHow/jenv/releases/latest' + data = fetch_with_retry(url, headers={'User-Agent': 'jenv-landing-fetcher'}) + version = data['tag_name'].replace('v', '') + platforms = {} + for platform in PLATFORMS: + if platform not in PLATFORM_MAP: + continue + platform_key = PLATFORM_MAP[platform]['jenv'] + asset = next((a for a in data['assets'] if platform_key in a['name']), None) + if asset: + platforms[platform] = { + 'url': asset['browser_download_url'], + 'size': format_bytes(asset['size']), + 'sha256': '' + } + return {'version': version, 'platforms': platforms} + +def fetch_maintained_jdk_versions(): + print('Fetching maintained JDK versions...') + url = 'https://api.foojay.io/disco/v3.0/major_versions?maintained=true' + data = fetch_with_retry(url) + return [int(v['major_version']) for v in data['result'] if int(v['major_version']) >= 8] + +def fetch_foojay_jdk(distribution, version, platform): + foojay_os = PLATFORM_MAP[platform]['foojay']['os'] + foojay_arch = PLATFORM_MAP[platform]['foojay']['arch'] + + params = { + 'version': version, + 'distribution': distribution, + 'operating_system': foojay_os, + 'architecture': foojay_arch, + 'archive_type': 'zip' if foojay_os == 'windows' else 'tar.gz', + 'package_type': 'jdk', + 'latest': 'available', + 'release_status': 'ga' + } + + url = f"https://api.foojay.io/disco/v3.0/packages" + try: + response = requests.get(url, params=params) + response.raise_for_status() + data = response.json() + + if not data or not data.get('result'): + print(f"No Foojay JDK found for {distribution} {version} on {platform}") + return None + + pkg = data['result'][0] + return { + 'url': pkg['links']['pkg_download_redirect'], + 'size': format_bytes(pkg.get('size', 0)), + 'sha256': pkg.get('checksum', ''), + 'javaVersion': pkg['java_version'], + 'distribution': pkg['distribution'] + } + except requests.exceptions.RequestException as e: + print(f"Failed to fetch Foojay {distribution} JDK {version} for {platform}: {e}") + return None + +def format_bytes(bytes_): + if bytes_ < 1024: + return f"{bytes_} B" + if bytes_ < 1024 ** 2: + return f"{(bytes_ / 1024):.1f} KB" + return f"{(bytes_ / 1024 ** 2):.1f} MB" + +def main(): + try: + print('Starting JDK links fetch from Foojay DiscoAPI...\n') + jenv = fetch_jenv_releases() + print(f"✓ JEnv version {jenv['version']} fetched\n") + + jdk_versions = fetch_maintained_jdk_versions() + print(f"✓ Maintained JDK versions: {jdk_versions}\n") + + distributions_data = {} + for dist in DISTRIBUTIONS: + print(f"Fetching {dist['name']}...") + versions = {} + for version in jdk_versions: + print(f" JDK {version}...") + platforms_data = {} + for platform in PLATFORMS: + if platform not in PLATFORM_MAP: + continue + jdk = fetch_foojay_jdk(dist['id'], str(version), platform) + if jdk: + platforms_data[platform] = jdk + import time + time.sleep(0.1) + if platforms_data: + versions[version] = platforms_data + + distributions_data[dist['id']] = { + 'name': dist['name'], + 'description': dist['desc'], + 'recommended': dist.get('recommended', False), + 'versions': versions + } + print(f"✓ {dist['name']} fetched\n") + + output = { + 'lastUpdated': datetime.now(timezone.utc).isoformat(), + 'jenv': jenv, + 'jdk': { + 'versions': jdk_versions, + 'recommended': [11, 17], + 'distributions': distributions_data + } + } + + output_path = os.path.join(os.path.dirname(__file__), '../data/jdk.json') + with open(output_path, 'w') as f: + json.dump(output, f, indent=2) + + print('✓ data/jdk.json updated successfully') + + except Exception as e: + print(f"\n❌ Error: {e}") + import traceback + traceback.print_exc() + exit(1) + +if __name__ == '__main__': + main()