Skip to content

Commit 320c013

Browse files
committed
Big Update, 0.1.0 update!
1 parent ef0a0e7 commit 320c013

9 files changed

Lines changed: 355 additions & 102 deletions

File tree

README.md

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,35 @@ JavaVersionManager is a Java library that allows you to download Java version an
55
<br>
66
*Warning: This library is still in development, so it is not yet stable.*
77

8-
# Features branch
9-
- [x] Download Java version
10-
- [x] Unzip Java version
11-
- [ ] Delete Java version
12-
- [ ] Get Java version list
13-
- [ ] Get Java version list from a specific version
8+
# Features branch Before V1.0.0
9+
- [ ] Ajouter une fonctionnalité de recherche automatique des dernières versions de Java disponibles. Vous pouvez interroger un service en ligne ou une API pour obtenir les informations sur les dernières versions publiées.
10+
11+
12+
- [x] Permettre à l'utilisateur de choisir le répertoire de destination pour le téléchargement et l'installation des versions de Java. Actuellement, le chemin est fixé sur System.getProperty("user.home") + "/.jdks", mais il serait utile de laisser l'utilisateur spécifier un chemin personnalisé.
13+
14+
15+
- [ ] Ajouter une fonctionnalité de gestion des versions installées. Vous pouvez afficher la liste des versions téléchargées et installées dans le répertoire choisi par l'utilisateur. Permettez également à l'utilisateur de choisir quelle version de Java utiliser par défaut.
16+
17+
18+
- [ ] Implémenter une fonctionnalité de mise à jour automatique. Vous pouvez vérifier régulièrement les nouvelles versions de Java disponibles et proposer à l'utilisateur de mettre à jour sa version actuelle si une nouvelle version est disponible.
19+
20+
21+
- [ ] Ajouter des options avancées pour la gestion des versions de Java, telles que la possibilité de supprimer une version spécifique, de restaurer une version précédente, ou de désinstaller complètement une version.
22+
23+
24+
- [ ] Améliorer l'interface utilisateur en utilisant des bibliothèques graphiques telles que JavaFX ou Swing pour créer une interface graphique conviviale et intuitive.
25+
26+
27+
- [ ] Gérer les erreurs et les exceptions de manière plus robuste. Actuellement, certaines erreurs sont simplement affichées en console, mais vous pouvez ajouter des mécanismes de gestion des erreurs plus sophistiqués, tels que l'enregistrement des erreurs dans un fichier de journal ou l'affichage de messages d'erreur plus explicites à l'utilisateur.
28+
29+
30+
- [ ] Ajouter une fonctionnalité de vérification de l'intégrité des fichiers téléchargés en comparant les sommes de contrôle (checksums). Cela permet de s'assurer que les fichiers téléchargés ne sont pas corrompus ou altérés.
31+
32+
33+
- [ ] Implémenter une fonctionnalité de recherche dans les versions téléchargées. Permettez à l'utilisateur de rechercher une version spécifique en utilisant des filtres tels que le numéro de version, la date de publication, etc.
34+
35+
36+
- [ ] Ajouter des tests unitaires pour valider le bon fonctionnement de votre code et éviter les régressions.
1437

1538
# How to use it
1639
## Executable Version

build.gradle.kts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ publishing {
2121
}
2222
}
2323

24+
tasks.withType(Jar::class) {
25+
manifest {
26+
attributes["Manifest-Version"] = "1.0"
27+
attributes["Main-Class"] = "fr.jachou.jvm.JavaVersionDownloader"
28+
}
29+
}
30+
2431
group = "fr.jachou"
2532
version = "0.0.3"
2633

src/main/java/fr/jachou/jvm/Logger.java

Lines changed: 0 additions & 19 deletions
This file was deleted.
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package fr.jachou.jvm.managers;
2+
3+
import java.io.File;
4+
import java.util.ArrayList;
5+
6+
public class JavaManager {
7+
8+
private JavaVersionManager javaVersionManager;
9+
10+
public JavaManager(JavaVersionManager javaVersionManager) {
11+
this.javaVersionManager = javaVersionManager;
12+
}
13+
14+
/*
15+
Private methods
16+
*/
17+
18+
/**
19+
* Extracts the version information from the java.exe file
20+
* @param jdkDir The directory of the JDK
21+
* @return The version information
22+
*/
23+
private static String getVersionFromJdkDir(File jdkDir) {
24+
String jdkDirName = jdkDir.getName();
25+
int versionStartIndex = jdkDirName.indexOf("jdk") + 3;
26+
int versionEndIndex = jdkDirName.indexOf('_', versionStartIndex);
27+
if (versionEndIndex == -1) {
28+
versionEndIndex = jdkDirName.length();
29+
}
30+
return jdkDirName.substring(versionStartIndex, versionEndIndex);
31+
}
32+
33+
/*
34+
Public methods
35+
*/
36+
37+
/**
38+
* List all installed JDKs and Java versions on the PC
39+
* @return An ArrayList containing the installed JDKs and Java versions
40+
*/
41+
42+
public static ArrayList<String> listInstalledJDKs() {
43+
ArrayList<String> jdkList = new ArrayList<>();
44+
45+
// Search for JDK installations in the Program Files/Java directory
46+
File programFilesJavaDir = new File(System.getenv("ProgramFiles") + "/Java");
47+
File[] jdkDirs = programFilesJavaDir.listFiles(File::isDirectory);
48+
if (jdkDirs != null) {
49+
for (File jdkDir : jdkDirs) {
50+
String jdkName = jdkDir.getName();
51+
jdkList.add(jdkName);
52+
}
53+
}
54+
55+
// Get the Java version of the currently running JVM
56+
String currentJavaVersion = System.getProperty("java.version");
57+
jdkList.add("");
58+
jdkList.add("Current Java version: " + currentJavaVersion);
59+
60+
return jdkList;
61+
}
62+
63+
/**
64+
* Checks if a specific version of Java is installed
65+
* @param version The version to check
66+
* @return True if the version is installed, false if not
67+
*/
68+
69+
public static boolean isASpecificVersionInstalled(String version) {
70+
ArrayList<String> jdkList = listInstalledJDKs();
71+
for (String element : jdkList) {
72+
if (element.contains(version)) {
73+
return true;
74+
}
75+
}
76+
return false;
77+
}
78+
}

0 commit comments

Comments
 (0)