プログラムがWindowsシステムにインストールされているかどうかをJavaで確認するにはどうすればよいですか。たとえば、Mozilla Firefoxを確認できますか?
私はあなたがWindowsについて話していると思います。Javaはプラットフォームに依存しない言語であることが意図されており、それを判別する方法はプラットフォームごとに異なるため、それをチェックする標準のJava APIはありません。ただし、WindowsレジストリをクロールするDLLのJNI呼び出しを使用してそれを行うことができます。次に、ソフトウェアに関連付けられているレジストリキーがレジストリに存在するかどうかを確認します。WindowsレジストリをクロールできるサードパーティのJava APIとして、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".
}
}
}
ただし、プラットフォームに依存しないアプリケーションを使用する場合は、Linux / UNIX / Mac / Solaris / etc(つまり、Javaを実行できる場所)の方法も考慮して、FFがインストールされているかどうかを検出する必要があります。 。それ以外の場合は、それをWindows専用のアプリケーションとして配布し、Windowsでない場合はSystem#exit()
常に警告とともに行う必要System.getProperty("os.name")
があります。
申し訳ありませんが、FFがインストールされているかどうかを他のプラットフォームで検出する方法はわかりません。そのため、私からの回答は期待しないでください;)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加