如何让izpack安装程序根据操作系统体系结构正确限制文件集

时间:2014-05-28 15:54:18

标签: java installer izpack

我有一个简单的安装程序,不使用自定义面板和一个包来安装。

包有两个文件集元素,每个文件集元素都受< os>的限制。元件。

<packs>
    <pack name="My Application Pack" preselected="yes" required="yes">
        <description/>
        <fileset dir="@{basedir}/x86_64" targetdir="$INSTALL_PATH/">
            <os arch="x86_64"/>
        </fileset>
        <fileset dir="@{basedir}/x86" targetdir="$INSTALL_PATH/" >
            <os arch="x86"/>
        </fileset>
    </pack>
</packs>

我的安装程序已成功构建并运行,但完成后,它忽略了我的&lt; os&gt;限制,并将x86_64文件夹中的所有文件以及x86文件夹放入我的$ INSTALL_PATH中。

我在64位Windows 7计算机上运行。

任何人都可以告诉我,如果我做错了,或者这可能是izpack中的错误吗?

OBTW ...作为测试,我将限制改为此...

<os arch="sparc"/>

...当我在Windows 7,64位计算机上运行安装程序时,它成功地没有安装文件。我不确定这是否证明这是某种izpack错误,但我认为这将是有用的信息。

1 个答案:

答案 0 :(得分:1)

The IzPack doc. page here 概述了使用操作系统限制。此外,在该页面中,您将找到指向 已知操作系统名称和体系结构列表的链接。 or click here.

在简短阅读@ 2nd-link-above页面之后,似乎 os arch = x86_64 适用于Linux系列,因此它不是'为Windows 64位列出。

在该页面的末尾,您将找到一个示例代码,以查找特定于您的系统的 os.name,os.version和os.arch 的值。您可以直接在

中使用这些值
<os arch="XXX"/>

该页面还提到了

  

仅与os.name或os.arch的开头匹配的值也是有效的(例如,如果指定Windows,而os.name是Windows 98,则一切正常)

所以在命名约定方面有一些灵活性。

另外,一旦你的系统正常工作,请将你的os.name,version和arch的组合电子邮件发送到上一页提到的电子邮件地址,以便它们也可以列出。