如何从 Java 获取 Windows 10 上安装的应用程序列表
How to get the list of installed applications on Windows 10 from Java
我正在尝试从我的 Java 程序中获取安装在 windows 10 中的所有应用程序的列表。
我尝试了以下方法:
Runtime.getRuntime().exec("Get-WmiObject -class Win32_Product | Select-Object -Property Name");
我得到:
Cannot run program "Get-WmiObject": CreateProcess error=2
我也试过了:
Process p = Runtime.getRuntime().exec("Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize");
结果相似。
最后,我尝试使用库 "win32" 但它只 returns 安装了一些程序的名称。
我需要与在 powershell 中执行以下命令时得到的结果相同:
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize
我一直在 Whosebug 中寻找其他问题,但其中 none 给了我一个解决方案。我需要在每个磁盘单元中搜索(不仅在 C: 中)。有人可以告诉我一个可能的解决方案吗?
谢谢。
您不能直接 运行 PowerShell 命令,您必须通过 PowerShell 进程启动它们:
powershell -command "PowerShell commands with parameters"
所以像这样更改您的 exec 调用:
Process p = Runtime.getRuntime().exec("powershell -command \"Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize\"");
我正在尝试从我的 Java 程序中获取安装在 windows 10 中的所有应用程序的列表。 我尝试了以下方法:
Runtime.getRuntime().exec("Get-WmiObject -class Win32_Product | Select-Object -Property Name");
我得到:
Cannot run program "Get-WmiObject": CreateProcess error=2
我也试过了:
Process p = Runtime.getRuntime().exec("Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize");
结果相似。
最后,我尝试使用库 "win32" 但它只 returns 安装了一些程序的名称。
我需要与在 powershell 中执行以下命令时得到的结果相同:
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize
我一直在 Whosebug 中寻找其他问题,但其中 none 给了我一个解决方案。我需要在每个磁盘单元中搜索(不仅在 C: 中)。有人可以告诉我一个可能的解决方案吗?
谢谢。
您不能直接 运行 PowerShell 命令,您必须通过 PowerShell 进程启动它们:
powershell -command "PowerShell commands with parameters"
所以像这样更改您的 exec 调用:
Process p = Runtime.getRuntime().exec("powershell -command \"Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize\"");