Y a-t-il un moyen standard de faire cela? Je me rends compte que cela peut être dépendant un peu la plate-forme. Notre produit en ce moment n'est pris en charge que sur Windows - donc je suppose que c'est ce qui m'intéresse maintenant. Les seules choses que je peux penser sont à analyser le registre ou à analyser le système de fichiers. Numérisation du système de fichiers semble que cela puisse prendre très longtemps - et le registre peut être peu fiable. Devrais-je faire les deux? D'autres suggestions? J'ai essayé de chercher une API pour le faire sans chance. P>
3 Réponses :
J'irais probablement une combinaison de rechercher les clés de registre installées Java et de ramper les emplacements forts> par défaut forts> pour l'installation (qui ne devrait pas prendre trop de temps). P>
Une approche alternative serait de regrouper une petite application Java qui imprime divers détails tels que l'exécution de JVM. P>
Je commencerais tout d'abord à la recherche de la variable d'environnement Java_Home (et éventuellement JDK_Home bien que beaucoup moins fréquente), puis de déterminer la version qui soit et qu'il s'agisse d'un JDK ou d'une JRE. P>
Après cette vérification des emplacements courants. Découvrez le répertoire des fichiers de programme du système (ne supposez pas simplement que c'est C: \ Program Files Même s'il s'agit de 99,5% du temps) et de rechercher des emplacements d'installation courants sous cela (par exemple, Java). P>
Je ne ferais pas une recherche exhaustive. p>
On vaut la peine de demander: Avez-vous vraiment besoin de trouver JDK de cette façon? Vous ne pouvez pas simplement demander à l'utilisateur ce que JDK il souhaite utiliser, suggérant éventuellement des éléments faciles que vous avez trouvés déjà? P>
Clotheus pouvez-vous défendre pourquoi vous ne feriez pas une recherche exhaustive? Intuitivement, je suis d'accord ici mais je cherche de fortes raisons.
Une recherche exhaustive nécessiterait la recherche de tous les disques durs pour les fichiers Java.exe ou Javac.exe (supposer Windows) qui pourrait prendre beaucoup de temps.
Vous suggère de limiter votre recherche à C: \ Fichiers du programme \ et la variable% du chemin% de l'environnement en plus des deux variables énumérées ci-dessus.
System.out.println(System.getProperty("java.version")); Other properties here
Seulement indique à la version de la JRE exécutant le code - pas ce que JDK / JRES est installé
Désolé, j'ai mal compris la question. Vous pouvez utiliser le registre et si rien n'a été trouvé, demandez à l'utilisateur. La clé est HKEY_LOCAL_MASHINE / Software / JavaSoft / Java Development Kit