【问题标题】:izPack freeze when i execute my application in installation process当我在安装过程中执行我的应用程序时,izPack 冻结
【发布时间】:2016-07-22 14:31:34
【问题描述】:

我的应用程序是简单的基于摇摆的应用程序,它启动并将 ico 添加到托盘。就是这样。

如何在使用 izPack 安装后运行我的应用程序 jar? 我尝试使用:

<executable stage="postinstall" targetfile="$INSTALL_PATH/core/app.jar"> 
</executable>

但是安装是冻结的。

当我关闭我的应用程序时,下一部分就可以了。 如何解决?

【问题讨论】:

    标签: java installation izpack


    【解决方案1】:

    也许它会对某人有所帮助。 Izpack 等待应用程序结束。在 jar 中保存一些工作可能很有用,例如将文件从一个地方移动到另一个地方等,并关闭 jar 应用程序。之后 izpack 解冻。 但就我而言,我需要在安装后保持我的应用程序打开。 所以 stage="postinstall" 对我来说不正确。 我为 linux/windows 编写了 sh/bat,例如:

    Unix:
    #!/bin/bash
    $JAVA_HOME/bin/java -jar $INSTALL_PATH/core/updater.jar &
    
    Windows:
    start javaw -jar "$INSTALL_PATH\core\updater.jar"
    

    它打开应用程序并隐藏终端/cmd。

    在 install.xml 我添加:

    <panels>
        <panel classname="ProcessPanel"/>
    </panels>
    <resources>
        <res id="ProcessPanel.Spec.xml" src="ProcessPanel.Spec.xml"/>
    </resources>
    <packs>
        <pack name="core" required="yes">
    
            <fileset dir="resources/windows/scripts"
                     targetdir="$INSTALL_PATH/core/scripts">
                <os family="windows"></os>
            </fileset>
    
            <fileset dir="resources/linux/scripts"
                     targetdir="$INSTALL_PATH/core/scripts">
                <os family="unix"></os>
            </fileset>
    
            <executable targetfile="$INSTALL_PATH/core/scripts/run.sh" keep="true">
                <os family="unix"></os>
            </executable>
        </pack>
    </packs>
    

    和 ProcessPanel.Spec.xml:

    <?xml version="1.0" encoding="UTF-8" ?>
    <izpack:processing version="5.0" xmlns:izpack="http://izpack.org/schema/processing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://izpack.org/schema/processing http://izpack.org/schema/5.0/izpack-processing-5.0.xsd">
    <job name="RunWindows">
        <os family="windows" />
        <executefile name="$INSTALL_PATH/core/scripts/run.bat" />
    </job>
    <job name="RunUnix">
        <os family="unix" />
        <executefile name="$INSTALL_PATH/core/scripts/run.sh" />
    </job>
    

    因此进程面板启动此脚本并将应用程序保存在托盘中。

    【讨论】:

    • 成功了,谢谢!我不明白为什么没有一个简单的选项来运行安装后任务而不等待它完成......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多