Überprüfen jdk/JRE installiert ist und erhalten Sie Weg für jvm.dll
Prgrammatically, wie Sie überprüfen, ob java insalled und bekommen Weg von jvm.dll ?
- Kurz und schmutzig beantworten? Starten Sie es und sehen, ob es funktioniert
- Überprüfen Sie die Registrierung. Wenn Sie Lesen Sie die Registrierung, können Sie sagen, wo es installiert ist.. nur unter Windows. Weiß nicht für linux.
- Check out Launch4j oder people zu sehen, wie Sie suchen Sie in der Windows-Registry für eine installierte JVM
Du musst angemeldet sein, um einen Kommentar abzugeben.
Java kann überall installiert werden, und es gibt keine Garantie, dass Sie sollten in der Lage sein, um zu sehen, wo. So die Allgemeine Antwort auf Ihre Frage, ist "es ist unmöglich", oder dass "Sie hatte für die Ausführung einer rekursiven Datei-Suche für
jvm.dll
auf das gesamte Dateisystem".Aber das ist nicht, was Sie wollen. Ich denke, Sie wollen Holen Sie sich ein "Standard" - java oder der jvm, die java-tools oder eine java-software.
Normalerweise kann man feststellen, dass in der
$JAVA_HOME
Umgebungsvariablen (unter windows%JAVA_HOME%
) die aktuelle jdk-oder jre-Installation enthalten solljvm.dll
.Wenn es nicht funktioniert, ist es ein problem mit der Konfiguration auf dem system, aber vielleicht kann es passieren. Ihre zweite Wahl sollte sein, eine
java.exe
oder einejavaw.exe
irgendwo in Ihrem system-Pfad ($PATH
oder%PATH%
auf windows).Gibt es eine Menge tools oder java-Software, die kommen mit Ihren eigenen java/jvm-Instanz, insbesondere oracle geben, die aus Ihnen heraus. In Ihrem Fall, nur die Allgemeine Lösung funktioniert.
Können Sie auch Schreiben Sie ein Java-Programm, das druckt den Wert der
java.home
system variable. Zum Beispiel:dann rufen Sie
java.exe
auf diese Klasse. Wenn Sie Java nicht installiert oder können Sie es nicht benutzen dann wird der Prozess nicht gestartet... aber wenn es beginnt, dann werde es Ihnen sagen, den Pfad zum JRE-Installationsverzeichnis, das ist, was Sie brauchen, um herauszufinden, wo die jvm.dll ist.Gibt es noch das problem von Java installiert, aber nicht auf Ihrem WEG. In diesem Fall würde ich nur berichten, dass Java nicht gefunden werden konnte und bitten Sie den Benutzer für zusätzliche Eingabe.
Dies ist ein Ausschnitt, wie ich es gemacht habe, die Lage der jvm-dll gespeichert werden
runtimeLib
.Speicherort der VM-Bibliothek-Dateien (jvm.dll)
Für Oracle JDK. Der Pfad innerhalb des JDK-die Java HotSpot Client VM:
Den Pfad zu der Java HotSpot Server VM:
Windows-Registry-Schlüssel
Oracle OpenJDK, Azul, IBM und anderen JDK-Entwickler können eine Vielzahl von Windows-Registrierungsschlüsseln. Zum Beispiel, Java 11 scheint die
JavaSoft\JDK
- Taste, während Java 8 verwendetJavaSoft\Java Development Kit
. Programme wie Launch4j und Java Service Launcher suchen die registry für JVMs.HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\{version}\JavaHome
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Plug-in\{version}\JavaHome
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\{version}\JavaHome
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JDK\{version}\JavaHome
BEARBEITEN