Wie erkennen von Anwesenheit und Lage der JVM auf Windows?
Ich versuche zu erkennen, ob es eine JVM installiert ist und wo es liegt, damit ich laufen kann java.exe
.
Alle ich habe es geschafft, zu finden ist HKCU\Software\JavaSoft\Java Runtime Environment\<ver>
. Ist es sicher davon ausgehen, dass es installiert ist, in %PROGRAMFILES%\Java\jre<ver>
?
Ich versuche in C#, aber ich nehme an, die Antwort ist ziemlich sprachneutral, so dass jede Antwort ist willkommen.
EDIT: Ok, ich Dummerchen, ich fand Wie zu erkennen, ob java runtime installiert ist oder nicht auf einem computer mit c# die wies mich an HKLM\Software\JavaSoft\Java Runtime Environment\CurrentVersion
die Werke mit HKLM\Software\JavaSoft\Java Runtime Environment\<ver>\JavaHome
. Ich schaffte es, diese zu finden, anstatt unter HKLM\Software\Wow6432Node\JavaSoft\Java Runtime Environment
. Gibt es eine Möglichkeit zu erkennen, welche davon, die ich prüfen sollte, ohne zu versuchen, zu schnuppern an der CPU geben?
- Funktioniert der registry-Eintrag enthalten, alle Versionen von Java, obwohl? Da einige Anwendungen haben ältere Versionen von JRE gebündelt mit Ihnen und können überschreiben die vorherigen registry-Einträge, die eine echte Schmerzen.
- Es enthält alle Versionen, Seite an Seite mit der CurrentVersion-Schlüssel oben beschrieben, zeigen auf der Standard-JRE
- Das ist schön zu wissen, danke. Meine Bemerkung steht immer noch, obwohl, Vertrauen Sie nicht auf die aktuelle version blind. 🙂
- Vertrauen Sie nicht dieser Schlüssel entweder... untersucht, und meine Schlüssel, zeigen Sie auf veraltete client jvm.dll die wurde entfernt, stattdessen der neueren server jvm.dll das ist jetzt mit dem client.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werde ich werfen meinen Hut in den ring mit dem code habe ich am Ende mit:
Einer ordnungsgemäß installierten JVM auf einem windows-system (wahrscheinlich..) zu reagieren, um den Befehl shell-Befehl:
Diese nicht wieder den Weg, aber versuchen
(Mindestens) eine der Linien enthält die Zeichenkette
rt.jar
und diese Zeile enthält den Pfad zu den "aktiven" java virtual machine.java
ist nicht registriert inPATH
. Im Allgemeinen denke ich, dass sich aufPATH
auf Windows ist eine schlechte Idee, weil einfach so viele apps nicht die Mühe mit ihm.PATH
für ganz wenige apps, die angeblich, um es sich richtig.java.exe
in die windows - (oder ./system32-Ordner). Ich habe keinen speziellen Eintrag auf meinerPATH
Umfeld - aber es funktioniert wie oben beschrieben.PATH
Eintrag auf der install-Verzeichnis.javac
nicht gelöst werden kann, von der Konsole aus, diejava
Aufruf ausgeführtC:\WINDOWS\system32\java.exe
Nicht die JRE installieren java.exe in c:\windows?
C:\
, fand es inC:\Windows\SysWOW64
. Muss eine analoge IdeeHKLM\Software\Wow6432Node
. IMO, sieht aus wie MS ernsthaft geschraubt x86-Kompatibilität...Können Sie versuchen, Sie zu erhalten "*JAVA_HOME*" environment variable.
Es könnte hilfreich sein.
EDIT:
Bessere Idee Aussehen por "CLASSPATH" variable.