Java检查程序是否安装在Windows上[重复]

w8biq8rn  于 2023-11-21  发布在  Windows
关注(0)|答案(3)|浏览(172)

此问题在此处已有答案

Detect if certain software is installed on a user's machine in Java(4个答案)
5天前关闭。
有没有办法检查是否使用Java在Windows上安装了特定程序?
我正在尝试开发一个Java程序,通过使用7-Zip中的code line命令自动创建zip存档。
所以,我想检查在Java如果在我的Windows操作系统“7-Zip”已经安装.没有检查运行的应用程序或操作系统是Windows或Linux.我想得到一个布尔值(真/假)如果“7-Zip”安装在Windows上.

gdx19jrr

gdx19jrr1#

类unix的解决方案是简单地尝试运行带有--version标志的程序(在windows上可能是/?,或者像7zip那样根本没有任何标志),然后检查它是否失败,或者返回代码是什么。
比如说:

  1. public boolean is7zipInstalled() {
  2. try {
  3. Process process = Runtime.getRuntime().exec("7zip.exe");
  4. int code = process.waitFor();
  5. return code == 0;
  6. } catch (Exception e) {
  7. return false;
  8. }
  9. }

字符串

ut6juiuv

ut6juiuv2#

Apache Commons库有一个名为SystemUtils的类-完整文档可在https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/SystemUtils.html上获得。
在这个库中,您可以使用以下static boolean属性:

  1. SystemUtils.IS_OS_LINUX
  2. SystemUtils.IS_OS_WINDOWS

字符串

2jcobegt

2jcobegt3#

我知道这是一个相当老的问题,但如果有人仍然想知道Windows的答案,我宁愿使用命令行,而不是过时的旧库
Powershell中的例子:

  1. (gp HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*).DisplayName -Contains "Android Studio"

字符串
您将得到TrueFalse作为输出

仅适用于Windows

相关问题