Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
install4j能否检测到其他install4j安装?_Install4j - Fatal编程技术网

install4j能否检测到其他install4j安装?

install4j能否检测到其他install4j安装?,install4j,Install4j,背景信息。。。我维护产品“A”的install4j项目。我们正在开发一种新产品“B”,产品管理部门要求它拥有自己的基于install4j的安装程序 值得注意的是,这两个产品之间没有文件系统重叠或共享库。也就是说,它们将安装到同一系统上的唯一目录中(例如,/opt/myCompany/prodA,/opt/myCompany/ProdB) 但是,产品“B”要求在同一系统上安装产品“A”。但产品“A”并不依赖于“B”。因此,产品“B”的安装程序需要能够权威地确定产品“A”是否已安装在同一台计算机上,

背景信息。。。我维护产品“A”的install4j项目。我们正在开发一种新产品“B”,产品管理部门要求它拥有自己的基于install4j的安装程序

值得注意的是,这两个产品之间没有文件系统重叠或共享库。也就是说,它们将安装到同一系统上的唯一目录中(例如,
/opt/myCompany/prodA
/opt/myCompany/ProdB

但是,产品“B”要求在同一系统上安装产品“A”。但产品“A”并不依赖于“B”。因此,产品“B”的安装程序需要能够权威地确定产品“A”是否已安装在同一台计算机上,如果未安装,则安装它

问题:install4j是否维护其安装的产品的某种持久注册,以便产品“B”的安装程序可以权威地确定其从属产品(“A”)是否已安装在系统上?甚至可以查询安装/产品详细信息(例如版本、安装目录)

如果没有,我可以添加一些脚本逻辑来搜索产品“A”的迹象(例如,查找名为“A”的Windows服务),或者让用户浏览产品A的安装目录,但如果install4j提供了这一功能,我希望至少尝试一种更好的/内置的方式来完成这项任务

最后,顺便说一句,如果系统上还没有安装产品“A”,那么我计划使用“运行可执行文件或批处理文件”操作从介质安装它。我提到这一点是希望肯定这是解决这个问题的正确方法


谢谢你的帮助

install4j通过ApplicationRegistry类在API中公开此类功能:

使用此类的代码段是:

ApplicationRegistry.ApplicationInfo[]ApplicationInfo=
ApplicationRegistry.getApplicationInfoById(“其他应用程序ID”);
如果(ApplicationInfo.length>0){
setVariable(“otherAppInstalled”,applicationInfo.length>0);
setVariable(“otherAppInstallationDir”,
ApplicationInfo[0].getInstallationDirectory().getPath();
}