Question

Désolé, ma question concernant les débutants: P si je fais une promp " java -version " Dans la cmd sur un système Windows, suis-je garanti que le système pourra exécuter les fichiers .jar si je ne reçois aucune erreur ?

Était-ce utile?

La solution

Je suppose que le seul moyen garanti de rechercher un JRE consiste à essayer de lancer un petit programme Java.

Ou peut-être même pas cela. Je suppose qu'un système pourrait ne posséder qu'une partie de la bibliothèque standard Java installée. Dans ce cas, un petit fichier JAR de test pourrait fonctionner correctement, mais pas un programme complet. Bien que je ne puisse pas imaginer pourquoi quiconque se donnerait la peine de mettre en place un système de cette façon.

Autres conseils

À partir de la ligne de commande, vous devriez pouvoir appeler "java --version". qui renverra une erreur si Java n'est pas installé ou les informations de version actuellement installées.

Eh bien, évidemment pas. Vous pouvez placer un fichier vide appelé anywhare java.bat dans PATH, tel que C: \ Windows \ System32. Invocation de " java " ne générera aucune erreur, mais cela ne signifie pas pour autant qu'un JRE est installé.

Pourquoi ne pas exécuter un petit fichier de classe, qui écrit une valeur dans un fichier que vous vérifiez ensuite? Si cela échoue, cela ne fonctionne pas.

Une bonne valeur peut être la valeur de la propriété système java.version.

Sous Windows, vous pouvez vérifier le registre dans le plug-in HKLM \ SOFTWARE \ JavaSoft \ Java. A partir de là, chaque sous-clé est un JRE installé.

modifier Voici un code C # qui renverra un tableau de chaînes contenant les fichiers JRE installés

public string[] GetInstalledJavas() {
        // hold the registry subkeys that list the installed JRE's
        string[] jres = null;
        try {
            RegistryKey myKey = Registry.LocalMachine;
            myKey = myKey.OpenSubKey(@"SOFTWARE\JavaSoft\Java Plug-in"); // read-only
            jres = myKey.GetSubKeyNames();
        } catch (Exception myException) {
            Console.Writeline(myException.ToString());
        }
        return jres;
}

En fait, si vous ne souhaitez que vérifier sur les machines Windows, recherchez dans le registre un gestionnaire pour JNLP ... qui garantirait la présence d'une JRE relativement récente.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top