【问题标题】:Install4j silent upgrade without closing running applicationInstall4j 静默升级而不关闭正在运行的应用程序
【发布时间】:2017-01-31 18:59:41
【问题描述】:

使用 Install4j,我试图在不关闭它正在升级的应用程序的情况下进行静默升级。我收到以下错误“应用程序正在运行。请关闭所有实例并再次运行此安装程序。”有什么办法可以解决这个问题。我正在使用以下代码从我的代码中调用安装程序

String [] args = new String[1];
args[0] = "-q";
ApplicationLauncher.launchApplicationInProcess("6661", args, new ApplicationLauncher.Callback() {
                    @Override
                    public void exited(int i) {
                        logger.info("The installer exited");
                    }

                    @Override
                    public void prepareShutdown() {
                        logger.info("Calling the prepareShutowon fuction");
                    }
                }, ApplicationLauncher.WindowMode.DIALOG, null);

这似乎不起作用。仅当我关闭不想执行的应用程序时,升级才有效。

【问题讨论】:

    标签: java install4j


    【解决方案1】:

    使用 Install4j,我试图在不关闭它正在升级的应用程序的情况下进行静默升级。

    这是不可能的,在 Windows 上,如果正在运行的可执行文件正在使用 JAR 文件和可执行文件,则它们不能被覆盖。

    在更新程序中,您需要在新安装程序启动之前执行“关闭调用启动程序”操作。您可能已从默认配置中删除了该操作。然后,新安装程序可以使用“完成”屏幕上的“执行启动器”操作自动重新启动应用程序。

    【讨论】:

    • 我解决这个问题的一种方法是将我的应用程序安装在版本号下的子目录中。所以它将类似于“MyApp -> 1.0.0 ->AppFiles”。现在我的升级将创建一个新的子目录,如“MyApp -> 2.0.0->AppFiles”。 @Ingo
    猜你喜欢
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多