2009-05-01 6 views
0

Sorry mein Newbie Frage: P Wenn ich "Java-Version" in der cmd auf einem Windows-System Prompt, bin ich garantiert, dass das System in der Lage sein wird zu laufen .jar Dateien wenn ich keinen Fehler bekomme?Eine einfache kugelsichere Technik, um zu überprüfen, ob das System jre (Windows) hat

+0

Wenn es funktioniert (mit "java.exe", nicht nur "java"), kann man vernünftigerweise davon ausgehen, dass eine JVM installiert ist; Aber wenn das nicht heißt, bedeutet das nicht, dass nur java.exe nicht auf dem Pfad ist. –

Antwort

2

Ich denke, der einzige garantierte Weg, um nach einer JRE zu suchen, ist zu versuchen, ein kleines Java-Programm auszuführen.

Oder vielleicht nicht einmal das - ich denke, ein System könnte nur einen Teil der Java-Standard-Bibliothek installiert haben, in diesem Fall eine kleine Test-JAR könnte gut funktionieren, aber ein volles Programm möglicherweise nicht. Obwohl ich mir nicht vorstellen kann, warum irgendjemand sich die Mühe machen würde, ein System auf diese Weise einzurichten.

+0

Ja, das klingt nach einer vernünftigen Technik. –

+0

Danke :) Das wird funktionieren! – Johannes

1

Nun, natürlich nicht. Sie können eine leere Datei namens java.bat anywhare in PATH ablegen, wie C: \ Windows \ System32. Das Aufrufen von "java" führt nicht zu Fehlern, aber es bedeutet nicht, dass eine JRE installiert ist.

+0

Danke .. rate ich muss weiter schauen :) Sie haben eine Technik zu überprüfen, ob jre von einem Code oder Befehl Prompt installiert ist? – Johannes

+1

Wie David sagte, ist der einzige "kugelsichere" Weg das Ausführen eines kleinen Java-Programms. Sie können auch versuchen, die Ausgabe von "java -version" zu analysieren. Es wäre nicht 100% idiotensicher, aber ich nehme an, es wäre gut genug. –

0

Ich würde vorschlagen, wenn Sie nur über das Überprüfen von Windows-Maschinen besorgt sind, die Registrierung für einen Handler für JNLP überprüfen ... das sollte das Vorhandensein einer relativ neuen JRE garantieren.

1

Warum nicht eine kleine Klassendatei ausführen, die einen Wert in eine Datei schreibt, die Sie dann überprüfen? Wenn es fehlschlägt, funktioniert es nicht.

Ein guter Wert könnte der Wert der Systemeigenschaft java.version sein.

1

Unter Windows können Sie die Registrierung im HKLM \ SOFTWARE \ JavaSoft \ Java Plug-in überprüfen. Von dort ist jeder Unterschlüssel eine installierte JRE.

bearbeiten Hier ist C# -Code, die

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; 
} 
2

in der Befehlszeile ein Array von Strings mit der installierten JRE zurückkehren sollten Sie in der Lage sein, „java --version“ aufrufen, die einen Fehler zurück wenn Java nicht installiert ist oder die aktuell installierte Versionsinformation.

Verwandte Themen