2010-03-13 16 views

Antwort

11

Ich nehme an, dass Sie über Windows sprechen. Da Java eine plattformunabhängige Sprache sein soll und die Art und Weise, wie sie zu bestimmen ist, von Plattform zu Plattform unterschiedlich ist, gibt es keine standardmäßige Java-API, um dies zu überprüfen. Sie können es jedoch mit Hilfe von JNI Aufrufe einer DLL, die die Windows-Registrierung durchsucht. Sie können dann einfach überprüfen, ob der der Software zugeordnete Registrierungsschlüssel in der Registrierung vorhanden ist. Es gibt eine Java-API von Drittanbietern, mit der Sie die Windows-Registrierung crawlen können: jRegistryKey.

Hier ist ein SSCCE mit Hilfe von jRegistryKey:

package com.stackoverflow.q2439984; 

import java.io.File; 
import java.util.Iterator; 

import ca.beq.util.win32.registry.RegistryKey; 
import ca.beq.util.win32.registry.RootKey; 

public class Test { 

    public static void main(String... args) throws Exception { 
     RegistryKey.initialize(Test.class.getResource("jRegistryKey.dll").getFile()); 
     RegistryKey key = new RegistryKey(RootKey.HKLM, "Software\\Mozilla"); 
     for (Iterator<RegistryKey> subkeys = key.subkeys(); subkeys.hasNext();) { 
      RegistryKey subkey = subkeys.next(); 
      System.out.println(subkey.getName()); // You need to check here if there's anything which matches "Mozilla FireFox". 
     } 
    } 

} 

Wenn Sie jedoch beabsichtigen, eine plattformunabhängigen Anwendung haben, dann werden Sie auch zu berücksichtigen, haben die Linux/UNIX/Mac/Solaris/etc (mit anderen Worten: überall wo Java laufen kann) Wege zu erkennen, ob FF installiert ist. Andernfalls müssen Sie es als reine Windows-Anwendung verteilen und eine System#exit() zusammen mit einer Warnung ausführen, wenn System.getProperty("os.name") nicht Windows.

Sorry, ich weiß nicht, wie in anderen Plattformen zu erkennen, ob FF installiert ist oder nicht, also nicht erwarten, eine Antwort von mir, dass;)

+1

+1 für jRegistryKey Einführung Dank – stacker

0

Es gibt keine API, die ich kenne, mit der Sie dies tun können - ich erwarte, dass die allgemeinste Methode ist, Dateispeicherorte zu überprüfen.

Andere Ansätze (wie das Überprüfen der Windows-Registrierung) sind vom Betriebssystem abhängig.

Verwandte Themen