How can I check with Java if a program is installed on a Windows system, for example to check for Mozilla Firefox?
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
I assume that you’re talking about Windows. As Java is intented to be a platform independent language and the way how to determine it differs per platform, there’s no standard Java API to check that. You can however do it with help of JNI calls on a DLL which crawls the Windows registry. You can then just check if the registry key associated with the software is present in the registry. There’s a 3rd party Java API with which you can crawl the Windows registry: jRegistryKey.
Here’s an SSCCE with help of jRegistryKey:
If you however intend to have a platformindependent application, then you’ll also have to take into account the Linux/UNIX/Mac/Solaris/etc (in other words: anywhere where Java is able to run) ways to detect whether FF is installed. Else you’ll have to distribute it as a Windows-only application and do a
System#exit()along with a warning wheneverSystem.getProperty("os.name")does not Windows.Sorry, I don’t know how to detect in other platforms whether FF is installed or not, so don’t expect an answer from me for that 😉