对问题和练习的答案:自包含的应用程序

Questions

  • 问题: 以下哪项不是自包含应用程序的优势?

  • 用户使用他们熟悉的安装程序来安装应用程序。

    • 该应用程序作为本机应用程序运行。

    • 该应用程序需要用户计算机上的空间更少。

    • 您可以控制应用程序使用的 JRE 版本。

    • 该应用程序不需要浏览器即可运行。

答案: C.该应用程序需要更多空间,因为 JRE 与该应用程序 Binding 在一起。

  • 问题: 对或错:必须始终使用 MIME 类型来构建文件关联。

答案: False **。根据所使用的平台和 Binding 程序,可以使用 MIME 类型或文件 extensions。对于 Linux,MIME 类型是必需的。对于 Windows,文件 extensions 是必需的。对于 OS X,需要 MIME 类型或文件 extensions。不论平台如何,在设置文件关联时最好同时提供 MIME 类型和文件 extensions。

  • 问题:<fx:deploy> Ant 任务中,哪些元素用于标识自包含应用程序的入口点?

答案: <fx:application>元素的mainClass属性用于标识主要入口点。如果自包含应用程序具有多个入口点,则<fx:secondaryLauncher>元素用于每个辅助入口点。

Exercises

  • 练习: 编写<fx:deploy> Ant 任务以为名为“我的示例应用程序”的简单应用程序生成 Windows MSI 包。该应用程序的 JAR 文件位于dist目录中,主类为samples.MyApp,输出文件将写入当前目录。

Answer:

<fx:deploy outdir="."
           outfile="MySampleApp"
           nativeBundles="msi>

    <fx:application name="My Sample Application"
                    mainClass="samples.MyApp"/>

    <fx:resources>
        <fx:fileset dir="dist" includes="*.jar"/>
    </fx:resources>

    <fx:info title="My Sample Application"
             description="A simple sample app"/>
</fx:deploy>
  • 练习: 增强上一个练习中的代码,以为所有 Windows 安装程序创建 Binding 包,并为文本文件定义文件关联。

Answer:

<fx:deploy outdir="."
           outfile="MySampleApp"
           nativeBundles="installer">

    <fx:application name="My Sample Application"
                    mainClass="samples.MyApp"/>

    <fx:resources>
        <fx:fileset dir="dist" includes="*.jar"/>
    </fx:resources>

    <fx:info title="My Sample Application"
             description="A simple sample app">
        <fx:association extension="txt" 
                        description="Text files">
         </fx:association>
     </fx:info>
</fx:deploy>

nativeBundles属性设置为installer时,打包程序将try为该平台的所有受支持的安装程序构建 Binding 包。磁盘映像未创建。如果构建特定 Binding 软件所需的工具不可用,那么将跳过该 Binding 软件类型。

Windows 在定义文件关联时仅需要extension属性。