VAInstall0.24文档翻译:构建安装包,Building the package

< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd">
- no title specified

VAInstall0.24文档翻译:构建安装包,Building the package

在设置了那两个配置文件之后,打包者可以为指定的目标平台来构建他她的安装包了。

直接执行VAInstall 类,带上”.vai”文件作为它的唯一参数。classpath(类路径)必须包含lib/目录中 的jniregistry.jar 和vainstall.jar。

Unix:

  $ cd VAInstall/examples/hello

  $ java -cp ../../lib/jniregistry.jar:../../lib/vainstall.jar com.memoire.vainstall.VAInstall hello.vai

 

Windows:

  C:Program Files> cd VAInstallexampleshello

  C:Program FilesVAInstallexampleshello> java -cp ….libjniregistry.jar;….libvainstall.jar com.memoire.vainstall.VAInstall hello.vai

 

构建过程将会分析配置文件,如果发现有错误,则退出。否则,它开始压缩文件列表中的文件,在这个过程中会跳过那些找不到的文件。

最终将一次性生成针对不同目标平台的自解压程序,每个平台一个。

每个输出文件的文件名都是在主配置文件里指定的”类名“,接着是一个扩展名(Windows 系统“.exe”Linux 原生程序是“.lin”Unix 脚本是“.sh”Java 类是“.class”Jar 可执行程序是“.jar”JavaWebStart “.jnlp”)。

重要请注意Java 类目标不能从一个像 CD-Rom 这样的只读媒体上安装,因为它需要向媒体上写入一个文件。

其它目标的安装包都可以从一个只读媒体上安装。

VAInstall0.24文档翻译:文件列表,File List

< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd">
- no title specified

VAInstall0.24文档翻译:文件列表,File List

文件列表是一个文件,它是在主配置文件里命名的,它列出要在软件包中包含的文件和目录。

它有一个特殊的语法,用来指定:目录的递归包含、文件的可执行属性、java 运行脚本的生成。

请参考”exampleshellohello_filelist.txt”。

文件列表由两种元素组成:

  • •.打包条目,它们用来指定到(打包者的机器上的)哪里去找文件以及将文件放置到(最终用户的机器上的)哪里。 

  • •.脚本条目,用来将你的程序的Java 启动脚本的自动生成过程进行自定义设置。生成启动脚本的过程会探测最终用户的机器上的Java虚拟机,并且在主安装目录里写入一个终端脚本,这个脚本将在指定的类上执行虚拟机。 

来看看语法的细节。

打包条目(标志)<原始基准目录>|<目标基准目录>|<公共路径>[|<*.扩展>,!<*.扩展>,...]

  • •.<原始基准目录>是你自己的机器上的一个目录它可以是空的、绝对的或者相对的。它支持路径宏(看本页下面的内容)。 

  • •.<目标基准目录>是将在目标机器上创建的一个文件或者目录。它会附加到默认的destPath(.vai文件)或者由用户选择的目标目录之后。它可以是空的,但永远是相对的。它支持路径宏。 

  • •.<公共路径>同时在本机和目标机器上起作用的一个相对路径。它可以是单个的文件或者是一个目录(所有文件都递归地包含)。支持路径宏。 

  • •.<*.扩展>…是一个由逗号分隔的文件扩展名列表,它指定要包含到软件包中或者要从软件包中排除的文件。如果前面带有’!'就会排除文件。’.’可以省略,例如,如果你想排除叫做”excl_dir”的整个子目录,你可以这样写:”!*excl_dir” 

(标志)可以是:

  • •.(E) :这个文件是一个可执行文件(在Windows目标里:这个标志被忽略 

  • •.(N) :不要递归。默认情况下,将会递归地处理目录。这个标志导致打包程序只包含当前目录,不包含子目录。 

路径宏:它们是预定义的宏或者MS-DOS 驱动器字母,可以加在路径的前面。它们必须写到括号里,例如”[HOME]“。允许的宏有:

  • •.HOME :将展开成为用户的家目录(Windows 上是“C:”)。 

  • •.PROGRAM :将展开成为放置程序的默认路径(例如,在 Windows 上是“C:Program Files”,在 Unix 上是“/usr/local”) 

宏后面只能跟着写相对路径。驱动器字母是MS-DOS 风格的盘符,例如”C:”。驱动器字母后面只能跟着写绝对路径。

  脚本条目

  {

    <脚本类型>

    <关键1>=<参数1>

    <关键字2>=<参数2>

    …

  }

 

<脚本类型>可以是:

  • •.JavaLauncher :这个脚本将会使用Java 虚拟机来执行指定的类 

<关键字>

  • •.ScriptName :(必需的)生成的脚本文件的名字(不包含扩展名) 

  • •.Class :(必需的)要执行的类 

  • •.JavaMode :(可选的)console或者windows(不打开终端窗口) 

  • •.JavaArgs :(可选的)传递到虚拟机的标志(-mx, -D…) 

  • •.ClassPath :(可选的)classpath(类路径) 

  • •.ClassArgs :(可选的)传递给要执行的类的参数 

 

VAInstall0.24文档翻译:主配置文件,Main Configuration File

< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd">
- no title specified

VAInstall0.24文档翻译:主配置文件,Main Configuration File

我们在这里描述主配置文件:“.vai”文件。它是一个基本的Java属性文件。下面会一个个地解释这些属性。

请参考”examples/hello/hello.vai”

 

vainstall.archive.archivingMethod=

打包方法。可以是”append”或者”include”

这个值应当保持为”append”。

这个选项是因为历史原因而保留的。在以前的版本里有两种构造安装包的方法:将文件打包附加到可执行的Java类中;或者是使用一个自定义的ASCII编码将文件作为一个String包含进去

现在只支持第一种方法,因为第二种方法效率很低而且又慢。

 

vainstall.archive.installClassName=

安装类的名字。这是输出的文件的名字(不包含扩展名)。

当选中的目标是Java 时,它同时也是目标类的名字。

重要:对于这个名字,只允许其中包含字母、下划线和数字(“A”到”Z”、”a”到”z”、”_”和”0″到”9″),因为它是一个Java类名。数字不能作为第一个字符

 

vainstall.archive.filelist=

用来列出要包含在安装包里的文件列表的那个文件的路径

指向下一节中描述的文件列表

 

vainstall.destination.targets=

输出的包格式。你可以放一个或者多个格式(使用逗号’,'分隔)在这里,对应的安装包会一次性全部生成。可用的格式包括

  • •.“java” : 可执行的Java 类 

  • •.“jar” : 可执行的Jar 文件(使用’java -jar’命令执行,或者在windows 中双击 

  • •.“jnlp”:JavaWebStart Jnlp文件。这将强制输出”jar”,因为JavaWebStart需要jar 

  • •.“unix” : 在Unix/Linux 平台上可执行的终端脚本 

  • •.“win95″ : Windows可执行程序 

  • •.“linux-i386″:原生的Linux-i386/glibc2可执行程序(你应当优先选择”unix”目标而不是这个) 

所有的输出文件都拥有在”vainstall.archive.installClassName”属性里指定的文件名,以及根据目标格式确定的扩展名

 

vainstall.destination.ui=

在目标机器上使用的安装程序的界面。可以是以下几种中的一种

  • •.“graphic” : 经典的”Swing”用户界面 

  • •.“xtra” : 原始的自定义用户界面。试试! 

  • •.“text” : 简单的文字用户界面。在只有字符界面的机器上默认使用这个 

  • •.“ansi” : 彩色文字。只在兼容ansi 标准的终端上支持,例如Linux 终端 

无论打包者选择什么用户界面,最终用户都可以在命令行强制使用”text”界面。

 

vainstall.destination.language=

在目标机器上使用的安装程序语言。可以是以下几种中的一种

  • •.“default”:只写上这个关键字。如果VAInstall支持目标机器上安装的语言,就使用它。否则它使用英语 

  • •.“choose”:只写上这个关键字。用户将看到一个语言对话框。在这个对话框里,用户可以在VAInstall支持的所有语言里面选择。用户以后卸载这个软件的时候也会使用这个语言。对话框将探测系统的地域信息,如何有对应的语言就会切换过去。否则对话框将默认选中英语 

  • •.“choose”:写上这个关键字及语言的关键字。与’choose’的行为相同,但是会限制用户能选择的语言的种类。例如‘choose,english,french’ 

  • •.“english” : 英语 

  • •.“french” : 法语 

  • •.“danish” : 丹麦语 

  • •.“japanese” : 日语 

 

vainstall.destination.ui.bluescreen=

是否应该在目标机器上显示一个全屏的蓝屏

用”yes”或者”no”来回答

蓝屏是指一个显示安装包的名字的全屏的彩色面板。由于一个还未找到的问题,它可能在平台上使安装程序停止工作,所以在发布一个选择了蓝屏的安装包之前,你应该仔细测试。

然而,最终用户可使用命令行参数将蓝屏属性设置为”no”

 

vainstall.destination.ui.bluescreen.colour=

蓝屏颜色。如果要显示蓝屏,则这个属性指定它的颜色,使用十六进制表示:RRGGBB

例如FF0000就是红色

实际上,蓝屏会显示出一个基于指定颜色的渐变效果

 

vainstall.destination.ui.image=

标志图片。如果选择了图形界面安装模式,那么这个属性设置的就是将会显示在安装程序界面上的图片的路径

使用任意的gif或者jpeg图片。在graphic模式,图片将会被缩放到200×400的大小;在xtra模式,图片将会按原始大小显示。如果你没有指定一个文件,那么将会使用一个默认的标志图片。

 

vainstall.destination.defaultPath=

默认的目标目录。在安装过程中将会建议最终用户使用这个路径。用户仍然能更改它

在文件列表中的任何拥有相对路径的文件都将会被复制到这个默认的目录或者是用户更改后的目录。

格式:这个路径可以是相对的也可以是绝对的。你可以使用驱动器字母(对于Windows目标的安装程序),但是你必须将它们放到括号中例如:“[C:]Temp/example/path”。在其它平台上,驱动器字母将被忽略并且被文件系统的根目录代替:“/”

你也可以使用通用的变量,它们都针对每个平台进行了映射。变量必须放到括号里

  • •.“HOME”在Windows系统中表示根目录(通常是”C:”),在其它平台上表示用户的家目录例如:“[HOME]example/path”在win95平台将会映射到”C:examplepath”,在Linux/Unix平台将会映射到”HOME/example/path”。 

  • •.“PROGRAM”在Windows系统中表示程序目录(通常是”C:Program Files”), 在Unix平台上表示”/usr/local”例如:“[PROGRAM]example/path”在Windows平台上将会映射到”C:Program Filesexamplepath”,而在Linux/Unix平台上将会映射到”/usr/local/example/path” 

 

vainstall.destination.installMode=

“install”“update”或”module”模式

如果你选择”update”,那么vainstall.destination.defaultPath将会被强制设置成目标机器上以前安装这个软件包时的目录。如果没有,则安装程序将退出。

“update”模式适合于进行差分式升级,或者是已经安装过一个较早版本的情况“module”是特别为模型/插件的安装而优化的模式。“module”类似于升级但是它强制将模块的版本变更成与目标机器上已安装的软件一致。普通(默认)模式是”install”。

 

vainstall.destination.appName=

要打包的程序的名字(或数据源)。这个名字将会在安装过程中作为标题出现,并且会出现在Windows注册表中。

 

vainstall.destination.appVersion=

程序(或数据源)的版本。这个版本号将在安装过程中与程序名字一起出现,并且会出现在Windows注册表中。

vainstall.destination.linkSectionName=

链接区域(子菜单)名字(默认=”Applications”)。用来放置程序的链接(快捷方式)的子菜单名字。

注意快捷方式目前只在Debian/Gnome桌面上起作用。

 

vainstall.destination.linkSectionIcon=

链接区域(子菜单)图标(默认=没有)。子菜单的图标

 

vainstall.destination.linkEntryName=

链接条目(快捷方式)名字(默认=appName)。快捷方式的名字

 

vainstall.destination.linkEntryIcon=

链接条目(快捷方式)图标(默认=没有)。快捷方式的图标

 

vainstall.archive.license=

许可证文件的路径。程序的许可证文件在打包者的机器上的路径。许可证文件将会在安装过程的第二阶段显示给最终用户看

 

vainstall.archive.license.encoding=

如果许可证文件的编码与默认的系统编码不一致,则打包者可使用这个可选属性。直接将编码的名字放在这里,例如”UTF-8″。在你发布你的软件包之前,你应当测试一下安装过程,以确认许可证文件是正常显示的。

 

vainstall.archive.readme=

“请阅读”文件的路径。“请阅读”文件在打包者的机器上的路径。“请阅读”文件将会在安装过程的第三阶段显示给最终用户看。

 

vainstall.archive.readme.encoding=

如果“请阅读”文件的编码与默认的系统编码不一致,则打包者可使用这个可选属性。在你发布你的软件包之前,你应当测试一下安装过程,以确认“请阅读”文件是正常显示的。

 

vainstall.jarsigner.alias=

这是一个可选属性,它定义对jar目标进行签名的人的名字。如果你没有指定jar目标或者你不想对它进行签名,那么你可以跳过这个属性。

 

vainstall.jarsigner.passphrase=

这是一个可选属性,它定义用来对jar目标进行签名的密码短语如果你没有指定jar目标或者你不想对它进行签名,那么你可以跳过这个属性。

 

vainstall.jnlp.codebase=

如果你要求生成一个jnlp目标,那么就使用这个属性来设置jnlp文件需要的代码仓库。请参考 jnlp文档以了解更多信息。

 

vainstall.jnlp.homepage=

如果你要求生成一个jnlp目标,那么就使用这个属性来设置jnlp文件需要的主页。请参考 jnlp文档以了解更多信息。

 

vainstall.jnlp.vendor=

如果你要求生成一个jnlp目标,那么就使用这个属性来设置jnlp文件需要的制造商。请参考 jnlp文档以了解更多信息。