Bal*_*usC 11
我假设你在谈论Windows.由于Java旨在成为一种独立于平台的语言,并且每个平台的确定方式各不相同,因此没有标准的Java API来检查它.但是,您可以在对爬网Windows注册表的DLL上进行JNI调用的帮助下执行此操作.然后,您可以检查注册表中是否存在与该软件关联的注册表项.有一个第三方Java API,您可以使用它来抓取Windows注册表:jRegistryKey.
这是在jRegistryKey的帮助下的SSCCE:
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".
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您打算拥有一个独立于平台的应用程序,那么您还必须考虑Linux/UNIX/Mac/Solaris /等(换句话说:Java能够运行的任何地方)检测FF是否已安装的方法.否则,您将不得不将其作为仅限Windows的应用程序进行分发,并且System#exit()
只要System.getProperty("os.name")
不是Windows,就会发出警告.
对不起,我不知道如何在其他平台上检测是否安装了FF,所以不要指望我的回答;)
归档时间: |
|
查看次数: |
14869 次 |
最近记录: |