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

标签 java izpack

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

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

但是当我在我的一个包中使用相同的东西时,它没有任何作用。所以我的工作因以下异常而失败。

Java.io.IOException: Cannot run program /home/user/1.0/installations/test.sh: error=13, Permission Denied

下面是install.xml里面的pack定义

<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>

所以任何人都可以帮我解决这个问题。

提前致谢。

最佳答案

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>

关于java - IzPack 可执行文件不适用于 linux 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31446480/

相关文章:

java - Spring并返回大量Json数据

uninstallation - izPack 创建了一个在 Windows 中不起作用的卸载程序 "Programs and Features"

java - 如何让 IzPack 检查软件的现有版本?

java - Jaunt Java getText() 返回正确的文本,但有很多 "?"

java - Android:浏览 Activity 层次结构

java - Hadoop MultipleOutputs校验和

java - 您在 Izpack 安装的RegistrySpec.xml 中添加了什么来设置 Publisher 字段

java - Eclipse 格式化。在为 block 打开大括号之前删除新行

java - izPack,它可以输出单个可执行jar吗?

java - 如何在 Windows 上卸载 IzPack 安装的应用程序?