使用Java如何扫描电脑中已安装的和未安装的所有软件

如题,有一需求,扫描电脑中所有软件可能存在的漏洞,前提应该是先扫描出所有的软件,那么如何扫描所有软件呢?请各位大神指导

Runtime类中有个exec方法,把可执行文件的路径以字符串的方式放到该方法中,就能在单个线程中打开这个可执行文件了。注意Runtime是单例模式,没有构造函数,只有生成实例的静态方法。部分代码如下:
class RunDemo{
public static void main(String []args) {
Runtime rt = Runtime.getRuntime();
rt.exec("D:\lol\lol.exe"); //该路径是可执行文件的路径