install4j - 如果设置了自定义ID,则获取组件ID

时间:2014-04-24 15:26:23

标签: java install4j

有没有办法获取也设置了自定义ID的组件的组件ID?

我的用例如下:我有一个带有可下载/外部组件的安装程序,我只想在安装程序布局中出现.dat文件时才在GUI中显示其中一个。

问题是.dat文件在其文件名中使用了组件ID,而我一直在整个安装程序中使用自定义ID,以便更轻松地识别每个组件。使用自定义ID集,getId()函数返回所述自定义ID而不是常规ID,因此我不能使用它来编程构建用于在GUI中启用组件可见性的组件文件名。

现在我正在使用一种解决方法,不为我想要隐藏的组件设置自定义ID,除非已经存在,然后通过名称手动匹配该ID与特定组件(类似if(component.getName().equalsIgnoreCase("compName")) { context.setVariable("compNameID", component.getId()); })和然后在其余脚本中使用该compNameID变量。

1 个答案:

答案 0 :(得分:2)

你可以打电话

import install4j.runtime.installer.ContextImpl.InstallationComponentSetupImpl;   

String id = ((InstallationComponentSetupImpl)component).getInternalId()

获取安装组件的内部ID。