Skip to content

Commit e532fbf

Browse files
authored
Merge pull request #1 from BANSAFAn/b-branch-1
🐳 Add function to get Java version from different providers
2 parents ec354ed + 1111290 commit e532fbf

File tree

7 files changed

+247
-10
lines changed

7 files changed

+247
-10
lines changed

README.md

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
<kbd>[<img title="Ukraine" alt="Ukraine" src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/49/Flag_of_Ukraine.svg/1280px-Flag_of_Ukraine.svg.png" width="22">](README/README.ua.md)</kbd>
44
<kbd>[<img title="Russia" alt="Russia" src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Flag_of_Russia.svg/1280px-Flag_of_Russia.svg.png" width="22">](README/README.ru.md)</kbd>
5+
<kbd>[<img title="Germany" alt="Germany" src="https://upload.wikimedia.org/wikipedia/en/thumb/b/ba/Flag_of_Germany.svg/640px-Flag_of_Germany.svg.png" width="22">](README/README.de.md)</kbd>
6+
<kbd>[<img title="China" alt="China" src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Flag_of_the_People%27s_Republic_of_China.svg/800px-Flag_of_the_People%27s_Republic_of_China.svg.png" width="22">](README/README.zh.md)</kbd>
7+
<kbd>[<img title="Poland" alt="Poland" src="https://upload.wikimedia.org/wikipedia/en/1/12/Flag_of_Poland.svg" width="22">](README/README.pl.md)</kbd>
58

69
Java is an essential component for running Minecraft, especially for older versions and modded gameplay. This guide will help you find the right Java version for your Minecraft experience.
710

README/README.de.md

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Java für Minecraft herunterladen: Ein umfassender Leitfaden
2+
3+
Java ist eine wesentliche Komponente für Minecraft, insbesondere für ältere Versionen und modifiziertes Gameplay. Dieser Leitfaden hilft Ihnen, die richtige Java-Version für Ihr Minecraft-Erlebnis zu finden.
4+
5+
## Warum benötigen Sie Java für Minecraft?
6+
7+
Minecraft wurde in der Programmiersprache Java entwickelt, was bedeutet, dass Sie eine Java Runtime Environment (JRE) auf Ihrem Computer installiert haben müssen, um das Spiel ausführen zu können. Während neuere Versionen von Minecraft mit ihrer eigenen Java-Laufzeitumgebung ausgeliefert werden, benötigen ältere Versionen und viele modifizierte Instanzen immer noch eine separate Java-Installation.
8+
9+
## Empfohlene Java-Download-Quellen
10+
11+
Hier sind einige zuverlässige Quellen, von denen Sie Java für Minecraft herunterladen können:
12+
13+
1. **AdoptOpenJDK (Adoptium)**
14+
- Website: [https://adoptium.net/download/](https://adoptium.net/download/)
15+
- Beschreibung: Eine Community-gesteuerte, kostenlose Version von OpenJDK mit langfristiger Unterstützung.
16+
- Empfohlen für: Allgemeine Nutzung, besonders für ältere Minecraft-Versionen.
17+
18+
2. **Oracle Java**
19+
- Website: [https://www.oracle.com/java/technologies/](https://www.oracle.com/java/technologies/)
20+
- Beschreibung: Die offizielle Quelle für Java SE (Standard Edition) von Oracle.
21+
- Hinweis: Benötigt ein Oracle-Konto zum Download; beachten Sie die Lizenzbedingungen für kommerzielle Nutzung.
22+
23+
3. **Amazon Corretto**
24+
- Website: [https://aws.amazon.com/corretto/](https://aws.amazon.com/corretto/)
25+
- Beschreibung: Eine kostenlose, plattformübergreifende, produktionsreife Distribution von OpenJDK.
26+
- Empfohlen für: Benutzer, die Amazons langfristige Unterstützung und Optimierungen bevorzugen.
27+
28+
4. **Azul Zulu**
29+
- Website: [https://www.azul.com/downloads/](https://www.azul.com/downloads/)
30+
- Beschreibung: Open-Source-Builds von OpenJDK mit erweiterten Supportoptionen.
31+
- Empfohlen für: Benutzer, die robuste, gut unterstützte Builds suchen.
32+
33+
5. **Red Hat OpenJDK**
34+
- Website: [https://developers.redhat.com/products/openjdk/overview](https://developers.redhat.com/products/openjdk/overview)
35+
- Beschreibung: Red Hats Build von OpenJDK, bekannt für seine Stabilität und Sicherheitsupdates.
36+
- Empfohlen für: Benutzer, die mit Red Hat-Produkten vertraut sind oder in Unternehmensumgebungen arbeiten.
37+
38+
6. **Microsoft Build of OpenJDK**
39+
- Website: [https://www.microsoft.com/openjdk](https://www.microsoft.com/openjdk)
40+
- Beschreibung: Microsofts Distribution von OpenJDK, optimiert für Azure, aber überall nutzbar.
41+
- Empfohlen für: Windows-Benutzer oder Benutzer, die in Microsoft-Ökosysteme integriert sind.
42+
43+
## Welche Java-Version sollten Sie wählen?
44+
45+
Die benötigte Java-Version hängt von der Minecraft-Version ab, die Sie verwenden:
46+
- Für Minecraft 1.17 und neuer: Java 16 oder höher
47+
- Für Minecraft 1.12 bis 1.16.5: Java 8
48+
- Für ältere Versionen: Java 8 wird generell empfohlen
49+
50+
Überprüfen Sie immer die spezifischen Anforderungen für Mods oder Modpacks, die Sie verwenden möchten, da diese eigene Java-Versionsanforderungen haben können.
51+
52+
## Installationstipps
53+
54+
1. Laden Sie Java immer von offiziellen Quellen herunter, um die Sicherheit zu gewährleisten.
55+
2. Deinstallieren Sie ältere Java-Versionen, bevor Sie eine neue installieren, um Konflikte zu vermeiden.
56+
3. Starten Sie nach der Installation Ihren Computer neu, um sicherzustellen, dass alle Änderungen wirksam werden.
57+
4. Konfigurieren Sie Ihren Minecraft-Launcher so, dass er die richtige Java-Version verwendet, wenn diese nicht automatisch erkannt wird.
58+
59+
Denken Sie daran, Ihre Java-Installation für beste Leistung und Sicherheit aktuell zu halten. Viel Spaß beim Craften!

README/README.pl.md

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Pobieranie Javy dla Minecraft: Kompleksowy przewodnik
2+
3+
<kbd>[<img title="Ukraine" alt="Ukraine" src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/49/Flag_of_Ukraine.svg/1280px-Flag_of_Ukraine.svg.png" width="22">](README/README.ua.md)</kbd>
4+
<kbd>[<img title="Russia" alt="Russia" src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Flag_of_Russia.svg/1280px-Flag_of_Russia.svg.png" width="22">](README/README.ru.md)</kbd>
5+
6+
Java jest niezbędnym komponentem do uruchomienia Minecraft, szczególnie dla starszych wersji i zmodyfikowanej rozgrywki. Ten przewodnik pomoże Ci znaleźć odpowiednią wersję Javy dla Twojego doświadczenia z Minecraft.
7+
8+
## Dlaczego potrzebujesz Javy dla Minecraft?
9+
10+
Minecraft jest napisany w języku programowania Java, co oznacza, że potrzebujesz zainstalowanego środowiska uruchomieniowego Java (JRE) na swoim komputerze, aby uruchomić grę. Podczas gdy nowsze wersje Minecraft zawierają własne środowisko Java, starsze wersje i wiele zmodyfikowanych instancji nadal wymaga oddzielnej instalacji Javy.
11+
12+
## Zalecane źródła pobierania Javy
13+
14+
Oto kilka wiarygodnych źródeł, z których możesz pobrać Javę dla Minecraft:
15+
16+
1. **AdoptOpenJDK (Adoptium)**
17+
- Strona internetowa: [https://adoptium.net/download/](https://adoptium.net/download/)
18+
- Opis: Darmowa wersja OpenJDK tworzona przez społeczność, z długoterminowym wsparciem.
19+
- Zalecana dla: Ogólnego użytku, szczególnie dla starszych wersji Minecraft.
20+
21+
2. **Oracle Java**
22+
- Strona internetowa: [https://www.oracle.com/java/technologies/](https://www.oracle.com/java/technologies/)
23+
- Opis: Oficjalne źródło Java SE (Standard Edition) od Oracle.
24+
- Uwaga: Wymaga konta Oracle do pobrania; należy uwzględnić warunki licencji do użytku komercyjnego.
25+
26+
3. **Amazon Corretto**
27+
- Strona internetowa: [https://aws.amazon.com/corretto/](https://aws.amazon.com/corretto/)
28+
- Opis: Darmowa, wieloplatformowa, gotowa do produkcji dystrybucja OpenJDK.
29+
- Zalecana dla: Użytkowników preferujących długoterminowe wsparcie i optymalizacje Amazon.
30+
31+
4. **Azul Zulu**
32+
- Strona internetowa: [https://www.azul.com/downloads/](https://www.azul.com/downloads/)
33+
- Opis: Kompilacje OpenJDK z otwartym kodem źródłowym z rozszerzonymi opcjami wsparcia.
34+
- Zalecana dla: Użytkowników szukających solidnych, dobrze wspieranych kompilacji.
35+
36+
5. **Red Hat OpenJDK**
37+
- Strona internetowa: [https://developers.redhat.com/products/openjdk/overview](https://developers.redhat.com/products/openjdk/overview)
38+
- Opis: Kompilacja OpenJDK od Red Hat, znana ze stabilności i aktualizacji bezpieczeństwa.
39+
- Zalecana dla: Użytkowników zaznajomionych z produktami Red Hat lub pracujących w środowiskach korporacyjnych.
40+
41+
6. **Microsoft Build of OpenJDK**
42+
- Strona internetowa: [https://www.microsoft.com/openjdk](https://www.microsoft.com/openjdk)
43+
- Opis: Dystrybucja OpenJDK od Microsoft, zoptymalizowana dla Azure, ale użyteczna wszędzie.
44+
- Zalecana dla: Użytkowników Windows lub zintegrowanych z ekosystemem Microsoft.
45+
46+
## Którą wersję Javy powinieneś wybrać?
47+
48+
Potrzebna wersja Javy zależy od wersji Minecraft, którą uruchamiasz:
49+
- Dla Minecraft 1.17 i nowszych: Java 16 lub nowsza
50+
- Dla Minecraft 1.12 do 1.16.5: Java 8
51+
- Dla starszych wersji: Generalnie zalecana jest Java 8
52+
53+
Zawsze sprawdzaj szczególne wymagania dla modów lub paczek modów, których planujesz używać, ponieważ mogą one mieć własne wymagania dotyczące w

README/README.zh.md

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Minecraft的Java下载指南:完整教程
2+
3+
<kbd>[<img title="Ukraine" alt="Ukraine" src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/49/Flag_of_Ukraine.svg/1280px-Flag_of_Ukraine.svg.png" width="22">](README/README.ua.md)</kbd>
4+
<kbd>[<img title="Russia" alt="Russia" src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Flag_of_Russia.svg/1280px-Flag_of_Russia.svg.png" width="22">](README/README.ru.md)</kbd>
5+
6+
Java是运行Minecraft的必要组件,特别是对于较旧版本和模组游戏。本指南将帮助您找到适合您的Minecraft体验的正确Java版本。
7+
8+
## 为什么Minecraft需要Java?
9+
10+
Minecraft是使用Java编程语言开发的,这意味着您需要在计算机上安装Java运行时环境(JRE)才能运行游戏。虽然较新版本的Minecraft已经包含了自己的Java运行时,但旧版本和许多模组实例仍然需要单独安装Java。
11+
12+
## 推荐的Java下载来源
13+
14+
以下是一些可靠的Minecraft Java下载来源:
15+
16+
1. **AdoptOpenJDK (Adoptium)**
17+
- 网站:[https://adoptium.net/download/](https://adoptium.net/download/)
18+
- 描述:一个社区驱动的、免费的OpenJDK版本,具有长期支持。
19+
- 推荐用户:一般用途,特别是较旧的Minecraft版本。
20+
21+
2. **Oracle Java**
22+
- 网站:[https://www.oracle.com/java/technologies/](https://www.oracle.com/java/technologies/)
23+
- 描述:Oracle提供的Java SE(标准版)官方来源。
24+
- 注意:下载需要Oracle账户;商业用途请考虑许可条款。
25+
26+
3. **Amazon Corretto**
27+
- 网站:[https://aws.amazon.com/corretto/](https://aws.amazon.com/corretto/)
28+
- 描述:免费的、多平台、生产就绪的OpenJDK发行版。
29+
- 推荐用户:偏好亚马逊长期支持和优化的用户。
30+
31+
4. **Azul Zulu**
32+
- 网站:[https://www.azul.com/downloads/](https://www.azul.com/downloads/)
33+
- 描述:具有增强支持选项的OpenJDK开源构建版本。
34+
- 推荐用户:寻找稳健、支持良好的构建版本的用户。
35+
36+
5. **Red Hat OpenJDK**
37+
- 网站:[https://developers.redhat.com/products/openjdk/overview](https://developers.redhat.com/products/openjdk/overview)
38+
- 描述:Red Hat的OpenJDK构建版本,以其稳定性和安全更新而闻名。
39+
- 推荐用户:熟悉Red Hat产品或在企业环境中的用户。
40+
41+
6. **Microsoft Build of OpenJDK**
42+
- 网站:[https://www.microsoft.com/openjdk](https://www.microsoft.com/openjdk)
43+
- 描述:微软的OpenJDK发行版,为Azure优化但可在任何地方使用。
44+
- 推荐用户:Windows用户或集成在微软生态系统中的用户。
45+
46+
## 应该选择哪个Java版本?
47+
48+
您需要的Java版本取决于您运行的Minecraft版本:
49+
- Minecraft 1.17及更新版本:Java 16或更高版本
50+
- Minecraft 1.12至1.16.5:Java 8
51+
- 更老的版本:通常推荐使用Java 8
52+
53+
请始终检查您计划使用的任何模组或模组包的具体要求,因为它们可能有自己的Java版本要求。
54+
55+
## 安装提示
56+
57+
1. 始终从官方来源下载Java以确保安全。
58+
2. 在安装新版本之前卸载旧版本的Java,以避免冲突。
59+
3. 安装后重启计算机以确保所有更改生效。
60+
4. 如果Minecraft启动器没有自动检测到,请配置启动器使用正确的Java版本。
61+
62+
记住要保持Java安装更新以获得最佳性能和安全性。祝您游戏愉快!

scr/JavaVersionChecker.java

+13-5
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
public class JavaVersionChecker {
1212
private static final Map<String, String> SITES = new HashMap<>();
13+
1314
static {
1415
SITES.put("Adoptium", "https://adoptium.net/temurin/releases/?version=17");
1516
SITES.put("Oracle", "https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html");
@@ -39,19 +40,27 @@ private static String checkVersion(String provider, String url) throws IOExcepti
3940
switch (provider) {
4041
case "Adoptium":
4142
Elements releases = doc.select(".release-versions");
42-
version = releases.first().text();
43+
if (!releases.isEmpty()) {
44+
version = releases.first().text();
45+
}
4346
break;
4447
case "Oracle":
4548
Elements links = doc.select("a:contains(jdk-17)");
46-
version = links.first().text().split(" ")[0];
49+
if (!links.isEmpty()) {
50+
version = links.first().text().split(" ")[0];
51+
}
4752
break;
4853
case "Amazon Corretto":
4954
Elements rows = doc.select("table tr");
50-
version = rows.get(1).select("td").get(0).text();
55+
if (rows.size() > 1) {
56+
version = rows.get(1).select("td").get(0).text();
57+
}
5158
break;
5259
case "Azul Zulu":
5360
Elements versions = doc.select(".version-string");
54-
version = versions.first().text();
61+
if (!versions.isEmpty()) {
62+
version = versions.first().text();
63+
}
5564
break;
5665
case "Red Hat OpenJDK":
5766
case "Microsoft OpenJDK":
@@ -68,7 +77,6 @@ private static boolean isUrlUpdated(String url) throws IOException {
6877
long lastModified = connection.getLastModified();
6978
connection.disconnect();
7079

71-
7280
System.out.println("Last modified: " + new java.util.Date(lastModified));
7381

7482
return true;

scr/java.php

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?php
2+
3+
function getJavaVersion($url, $provider) {
4+
$ch = curl_init();
5+
6+
curl_setopt($ch, CURLOPT_URL, $url);
7+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
8+
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
9+
10+
$html = curl_exec($ch);
11+
curl_close($ch);
12+
13+
if ($html === false) {
14+
return "Error fetching data from $provider.";
15+
}
16+
switch ($provider) {
17+
case "Adoptium":
18+
preg_match('/<div class="release-versions">.*?<a.*?>(.*?)<\/a>/s', $html, $matches);
19+
return $matches[1] ?? "Version not found";
20+
case "Oracle":
21+
preg_match('/<a.*?jdk-17.*?>(.*?)<\/a>/s', $html, $matches);
22+
return $matches[1] ?? "Version not found";
23+
case "Amazon Corretto":
24+
preg_match('/<td>(.*?)<\/td>/s', $html, $matches);
25+
return $matches[1] ?? "Version not found";
26+
case "Azul Zulu":
27+
preg_match('/<span class="version-string">(.*?)<\/span>/s', $html, $matches);
28+
return $matches[1] ?? "Version not found";
29+
case "Red Hat OpenJDK":
30+
case "Microsoft OpenJDK":
31+
return "Version info not available, please check manually";
32+
default:
33+
return "Unknown provider";
34+
}
35+
}
36+
37+
$sites = [
38+
"Adoptium" => "https://adoptium.net/temurin/releases/?version=17",
39+
"Oracle" => "https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html",
40+
"Amazon Corretto" => "https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/downloads-list.html",
41+
"Azul Zulu" => "https://www.azul.com/downloads/?version=java-17-lts",
42+
"Red Hat OpenJDK" => "https://developers.redhat.com/products/openjdk/download",
43+
"Microsoft OpenJDK" => "https://learn.microsoft.com/en-us/java/openjdk/download"
44+
];
45+
46+
foreach ($sites as $provider => $url) {
47+
$version = getJavaVersion($url, $provider);
48+
echo "$provider: $version\n";
49+
}
50+
?>

scr/pom.xml

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
<dependency>
2-
<groupId>org.jsoup</groupId>
3-
<artifactId>jsoup</artifactId>
4-
<version>1.14.3</version>
5-
</dependency>
1+
<dependencies>
2+
<dependency>
3+
<groupId>org.jsoup</groupId>
4+
<artifactId>jsoup</artifactId>
5+
<version>1.14.3</version>
6+
</dependency>
7+
</dependencies>

0 commit comments

Comments
 (0)