Java 从以前的安装中获取版本信息

Java 从以前的安装中获取版本信息,java,install4j,Java,Install4j,运行“更新当前安装”选项,如何从以前的安装中获取版本信息?我已经看过了API,最近看到的是公共静态接口ApplicationRegistry.ApplicationInfo 编辑 这就是我目前正在做的事情。这是可行的,但我不确定这是否是最可行的方法 import com.install4j.api.ApplicationRegistry; ApplicationRegistry.ApplicationInfo[] AppInfo = ApplicationRegistry.getApplica

运行“更新当前安装”选项,如何从以前的安装中获取版本信息?我已经看过了API,最近看到的是
公共静态接口ApplicationRegistry.ApplicationInfo

编辑
这就是我目前正在做的事情。这是可行的,但我不确定这是否是最可行的方法

import com.install4j.api.ApplicationRegistry;

ApplicationRegistry.ApplicationInfo[] AppInfo = ApplicationRegistry.getApplicationInfoById(context.getApplicationId());

return AppInfo[0].getVersion();
你可以使用

static ApplicationRegistry.ApplicationInfo getApplicationInfoByDir(java.io.File dir)
检查指定目录是否包含install4j安装的应用程序,并检索有关该应用程序的信息


这将返回ApplicationInfo而不是ApplicationInfo[]。例如,以下脚本将检查是否已安装相同的版本:

// The value returned by context.getInstallationDirectory() will be
// the last installation directory if the user has already installed the application
ApplicationRegistry.ApplicationInfo applicationInfo =
    ApplicationRegistry.getApplicationInfoByDir(context.getInstallationDirectory());

if (applicationInfo == null) {
  // The application has never been installed before
    return true;
}

// The version of this installer is contained in a system installer variable
String myVersion = (String)context.getVariable("sys.version");
if (applicationInfo.getVersion().equals(myVersion)) {
    // In that case the current version is already installed.
    Util.showErrorMessage("The current version is already installed in this directory");
    // By returning "false", the action will fail and the installer will quit.
    // Note that you have to set the "Failure strategy" property of your 
    // "Run script" action to "Quit on error", otherwise the installer will continue.
    return false;
} else {
    return true;
}
例如,这可以在安装程序的“启动”节点中的“运行脚本”操作中使用