Ich versuche herauszufinden, ob eine JVM installiert ist und wo sie sich befindet, damit ich java.exe
ausführen kann.
Alles, was ich gefunden habe, ist HKCU\Software\JavaSoft\Java Runtime Environment\<ver>
. Kann man davon ausgehen, dass es in %PROGRAMFILES%\Java\jre<ver>
installiert ist?
Ich versuche, dies in C # zu tun, aber ich nehme an, die Antwort ist ziemlich sprachunabhängig, so dass jede Antwort geschätzt wird.
BEARBEITEN: Ok, alberne mich, ich fand Wie erkennt man, ob Java Runtime installiert ist oder nicht auf einem Computer mit c # , was mich auf HKLM\Software\JavaSoft\Java Runtime Environment\CurrentVersion
zeigt, was mit HKLM\Software\JavaSoft\Java Runtime Environment\<ver>\JavaHome
funktioniert. Ich habe es geschafft, diese stattdessen unter HKLM\Software\Wow6432Node\JavaSoft\Java Runtime Environment
zu finden. Gibt es eine Möglichkeit zu erkennen, welche von denen ich überprüfen sollte, ohne zu versuchen, auf den CPU-Typ zu schnüffeln?
Ich werde meinen Hut mit dem Code, den ich am Ende benutzt habe, in den Ring werfen:
%Vor%Eine ordnungsgemäß installierte JVM auf einem Windows-System antwortet (höchstwahrscheinlich ...) auf den Befehl shell:
%Vor%Dies gibt den Pfad nicht zurück, aber versuchen Sie
%Vor% (Mindestens) Eine der Zeilen enthält die Teilzeichenfolge rt.jar
und diese Zeile enthält den Pfad der "aktiven" Java Virtual Machine.