Programmgesteuert bestimmen, welche JDK/JRE ' s installiert sind auf meiner box
Ist es ein standard-Weg, dies zu tun? Ich weiß, das kann etwas von der verwendeten Plattform ab. Unser Produkt ist im Moment nur auf Windows unterstützt - so nehme ich an, das ist es, was mich interessiert, gerade jetzt. Die einzigen Dinge, die ich denken kann, sind entweder Scannen Sie die registry, oder durchforsten Sie die Datei-system. Das Scannen der Datei-system scheint, wie es dauert eine wirklich lange Zeit - und die Registrierung kann unzuverlässig sein. Sollte ich beides tun? Irgendwelche anderen Vorschläge? Ich habe versucht, zu suchen für eine API, um dies zu tun, ohne Glück.
InformationsquelleAutor Amir Afghani | 2009-07-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde zunächst beginnen Sie für die Umgebungsvariable JAVA_HOME (und möglicherweise JDK_HOME obwohl das ist weit weniger verbreitet) und dann bestimmen, welche version das ist und ob es ein JDK oder JRE.
Danach check for common Standorten statt. Finden Sie heraus, die system-Programm-Dateien-Verzeichnis (nicht einfach annehmen, dass es C:\Program Dateien, obwohl es 99,5% der Zeit) und suchen für gemeinsame Standorte installieren, unter, (zB Java).
Würde ich nicht tun, eine umfassende Suche.
Lohnt es sich zu Fragen: tun Sie Sie wirklich Notwendigkeit zu finden JDKs auf diese Weise? Fragen können nicht nur die Benutzer, welche JDK-er oder Sie verwenden will, möglicherweise darauf hindeutet, einfach diejenigen, die Sie gefunden haben, schon?
Eine vollständige Suche würde erfordern, sucht alle Festplatten nach den Dateien java.exe oder javac.exe (vorausgesetzt, windows), die viel Zeit in Anspruch nehmen.
Schlage vor, Sie Ihre Suche einschränken, um C:\Program Dateien\ und die %PATH% - Umgebungsvariable zusätzlich zu den zwei Variablen, die oben aufgeführt sind.
InformationsquelleAutor cletus
Andere Eigenschaften hier
Sorry, habe ich falsch verstanden, die Frage. Sie können die Registrierung verwenden, und wenn nichts gefunden wurde, bitten Sie den Benutzer. Der Schlüssel HKEY_LOCAL_MASHINE/SOFTWARE/JavaSoft/Java Development Kit
InformationsquelleAutor Denis Tulskiy
Ich würde wahrscheinlich gehen für eine Kombination aus suchen, für die Java-installiert, registry-Schlüssel und kriecht die Standard Standorte für die installation (die sollte nicht allzu lange dauern).
Ein alternativer Ansatz wäre, zu bündeln, eine kleine Java-Anwendung, die druckt verschiedene details wie die laufende JVM.
InformationsquelleAutor Mike McQuaid