IzPack可执行文件不适用于linux脚本

时间:2015-07-16 06:11:34

标签: java izpack

我正在尝试为我的一个java应用程序创建安装程序。

根据文档here,可执行文件用于在安装过程中执行sumthing,或者它可用于在类似unix的系统中设置可执行标志。

但是当我在我的一个包里使用相同的东西时,它什么也没做。所以我的工作失败了以下例外。

  

Java.io.IOException:无法运行程序/home/user/1.0/installations/test.sh:error = 13,Permission Denied

以下是install.xml

中的包定义
<pack name="Install Database Server" required="no" preselected="no"
installGroups="New Application">
    <description>New server installation of the selected database as
        required by the application.
    </description>
    <fileset dir="installations" targetdir="$INSTALL_PATH/$APP_VERSION/installations">
        <include name="**" />
    </fileset>
    <executable target="$INSTALL_PATH/$APP_VERSION/installations/test.sh"
        stage="never" keep="true" os="unix">
    </executable>
</pack>

以下是作业内部流程规范xml文件。

<job name="TestInstaller">
    <executefile name="$INSTALL_PATH/$APP_VERSION/installations/test.sh">
    </executefile>
</job>

所以任何人都可以帮助我。

提前致谢。

2 个答案:

答案 0 :(得分:1)

os是嵌套的元素,不是属性。请按以下方式更改install.xml:

<executable target="$INSTALL_PATH/$APP_VERSION/installations/test.sh"
    stage="never" keep="true">
    <os family="unix" />
</executable>

为了防止您的可执行文件也在非unix操作系统下调用,您还应该将该元素添加到您的流程规范XML中:

<job name="TestInstaller">
    <executefile name="$INSTALL_PATH/$APP_VERSION/installations/test.sh">
        <os family="unix" />
    </executefile>
</job>

答案 1 :(得分:0)

如果您想避免使用ProcessPanel,则可以直接设置它:

/([a-zA-Z0-9]{13})([-]{1}[A-Z]{1}){0,1}/.test("ABCDEFGKLM123") // true
/([a-zA-Z0-9]{13})([-]{1}[A-Z]{1}){0,1}/.test("ABCDEFGKLM123-A") // true
/([a-zA-Z0-9]{13})([-]{1}[A-Z]{1}){0,1}/.test("ABCDEFGKLM123-AA") // true. Should return false!
/([a-zA-Z0-9]{13})([-]{1}[A-Z]{1}){0,1}/.test("ABCDEFGKLM123-") // true. Should return false!
/([a-zA-Z0-9]{13})([-]{1}[A-Z]{1}){0,1}/.test("ABCDEFGKLM123A") // true. Should return false!