我有一个应用程序,我们使用IzPack创建安装程序。安装程序在当前状态下可以正常运行,但是,我需要添加功能,使其能够检查是否已安装该软件的现有版本。
我了解IzPack可以使用其 CheckedHelloPanel
开箱即用地支持它,不幸的是,它仅适用于Windows,因为它似乎依赖于Windows注册表。
有没有一种方法可以配置IzPack使其能够检测现有安装?
我需要能够检测是否有一个,仅显示一条通知用户的消息...奖励要点,如何为用户提供触发现有安装的卸载程序的选项。
<validator>
,请包括 validator 类的代码示例,因为我已经考虑了这一点,但是不知道从哪里开始最佳答案
我写这个是为了让我的应用程序可以通过jboss安装来安装。
public class JBossChecker {
private static boolean tempJBossEnv;
private static boolean tempJBossDirectoryExists;
static {
String s = System.getenv("JBOSS_HOME");
tempJBossEnv= (s!=null);
if( tempJBossEnv) {
File f = new File(s);
tempJBossDirectoryExists= ( f.exists() && f.isDirectory());
}
hasJBossEnv =tempJBossEnv;
hasJBossDir = tempJBossDirectoryExists;
}
public static boolean hasJBossDir;
public static boolean hasJBossEnv;
public static void main(String[] args){
System.out.println("Jboss environment "+hasJBossEnv);
System.out.println("Jboss directory "+hasJBossDir);
}
}
然后,安装程序有一个类似
<conditions>
<condition type="java" id="jbossEnv">
<java>
<class>au.com.codarra.ela.installer.JBossChecker</class
<field>hasJBossEnv</field>
</java>
<returnvalue type="boolean">true</returnvalue>
</condition>
<condition type="java" id="jbossDir">
<java>
<class>au.com.codarra.ela.installer.JBossChecker</class>
<field>hasJBossDir</field>
</java>
<returnvalue type="boolean">true</returnvalue>
</condition>
</conditions>
<installerrequirements>
<installerrequirement condition="jbossEnv" message="Your system does not have the environment variable JBOSS_HOME set. Cannot update your system. Is XXXX installed on this system?" />
<installerrequirement condition="jbossDir" message="Your system does not have a directory at the location in the environement variable JBOSS_HOME . Cannot update your system. Is XXXX installed on this system?" />
</installerrequirements>
<dynamicvariables>
<variable name="INSTALL_PATH" value="${ENV[JBOSS_HOME]}"/>
</dynamicvariables>
<jar src="c:\dev\xxxx\build\installer.jar" />
最后一点确保izpack将其添加到安装程序jar中。
关于java - 如何让IzPack检查软件的现有版本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1845166/