Java 中文官方教程 2022 版(十三)(2)

简介: Java 中文官方教程 2022 版(十三)

Java 中文官方教程 2022 版(十三)(1)https://developer.aliyun.com/article/1486364

部署最佳实践

原文:docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/bestPractices.html

你可以通过本主题中描述的最佳实践来提高富互联网应用程序(RIA)的用户体验。

  • 使用来自认可证书颁发机构的证书对 RIA 进行签名。确保所有工件都已签名,并且证书尚未过期。请参阅签署和验证 JAR 文件以获取有关签名的信息。
  • 请求所需的最低权限级别。如果 RIA 不需要对用户系统的无限制访问,请指定权限级别为沙盒。请参阅富互联网应用程序中的安全性以获取更多安全指南。
  • 优化 JAR 文件和相关资源的大小,以便您的 RIA 可以快速加载。请参阅减少下载时间以获取优化技巧。
  • 启用版本下载协议并使用后台更新检查以使您的 RIA 快速启动。请参阅避免不必要的更新检查以了解更多关于版本下载协议和更新检查的信息。
  • 确保客户端具有所需版本的 Java 运行时环境软件。请参阅确保 JRE 软件的存在以了解部署工具包脚本如何用于此目的的详细信息。
  • 将 applet 的 JNLP 文件内容嵌入标签中,以避免从网络加载 JNLP 文件。此功能是在 Java SE 7 版本中引入的。请参阅在 Applet 标签中嵌入 JNLP 文件以了解如何在网页中嵌入 applet 的 JNLP 文件内容。
  • 如有可能,预加载您的 Java Web Start 应用程序。如果您计划将 RIA 部署为具有一定管理控制权的企业中的 Java Web Start 应用程序,则可以将应用程序预加载到各个客户端,以便缓存并准备使用。使用以下命令预加载您的 Java Web Start 应用程序:
  • javaws -import -silent *<jnlp url>*

    减少下载时间

    原文:docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/reducingDownloadTime.html

    当用户尝试访问时,从网站下载富互联网应用程序(RIA)。 (初始下载后,可以缓存 RIA 以提高性能)。 下载 RIA 所需的时间取决于 RIA 的 JAR 文件大小。 更大的 JAR 文件下载时间更长。

    通过应用以下技术,您可以减少 RIA 的下载时间:

    • 使用pack200工具压缩 RIA 的 JAR 文件。
    • 从 Java 网络启动协议(JNLP)文件和 JavaScript 文件中删除不必要的空白。
    • 优化图像和动画。

    以下步骤描述了如何为已签名的 RIA 创建和部署压缩的 JAR 文件。

    1. 使用--repack选项对 JAR 文件进行规范化。
      此步骤确保在启动 RIA 时安全证书和 JAR 文件将通过验证检查。
    pack200 --repack DynamicTreeDemo.jar
    1. 对规范化的 JAR 文件进行签名。
    jarsigner -keystore myKeyStore DynamicTreeDemo.jar me
    1. 其中myKeyStore是密钥库的名称,me是密钥库的别名。
    2. 打包已签名的 JAR 文件
    pack200 DynamicTreeDemo.jar.pack.gz DynamicTreeDemo.jar  
    1. 在 RIA 的 JNLP 文件中将jnlp.packEnabled属性设置为true
    <resources>    
        <j2se version="1.6+"
            href="http://java.sun.com/products/autodl/j2se"
                  max-heap-size="128m" />
        <jar href="DynamicTreeDemo.jar"
            main="true"/>
        <property name="jnlp.packEnabled"
            value="true"/>
        <!-- ... -->
    </resources>

    当在 JNLP 文件中设置jnlp.packEnabled属性时,Java 插件软件会查找具有.pack.gz扩展名的压缩 JAR 文件(例如,DynamicTreeDemo.jar.pack.gz)。 如果找到,则 Java 插件软件会自动解压缩和加载 JAR 文件。 如果找不到具有.pack.gz扩展名的文件,则 Java 插件软件会尝试加载常规 JAR 文件(例如,DynamicTreeDemo.jar)。


    注意: 您需要将 RIA 部署在 Web 服务器上以测试jnlp.packEnabled属性。


    避免不必要的更新检查

    原文:docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/avoidingUnnecessaryUpdateChecks.html

    富互联网应用程序(RIA)在本地缓存以提高启动时间。但是,在启动 RIA 之前,启动软件会检查确保 RIA 的 Java 网络启动协议(JNLP)文件中引用的每个 JAR 文件都是最新的。换句话说,启动软件确保您运行的是 RIA 的最新版本,而不是旧的缓存副本。这些更新检查可能需要几百毫秒,具体取决于 JAR 文件数量和网络速度。使用本主题中描述的技术来避免不必要的更新检查,并提高 RIA 的启动时间。


    注意:

    此处使用术语“启动软件”来统称 Java 插件软件和 Java Web Start 软件。Java 插件软件用于启动小程序,而 Java Web Start 软件用于启动 Java Web Start 应用程序。


    利用版本下载协议

    您可以利用版本下载协议来消除不必要的版本检查。请参阅以下步骤以启用此协议。

    1. 将 JAR 文件重命名为包含版本号后缀的命名约定如下:
    *<JAR file name>*__V*<version number>*.jar
    1. 例如,将DynamicTreeDemo.jar重命名为DynamicTreeDemo__V1.0.jar
    2. 在 JNLP 文件中为每个 JAR 文件指定一个版本,并将jnlp.versionEnabled属性设置为true
    <resources>
        <!-- Application Resources -->
        <j2se version="1.6+"
            href="http://java.sun.com/products/autodl/j2se"
                max-heap-size="128m" />
        <jar href="DynamicTreeDemo.jar"
            main="true" version="1.0"/>   
        <jar href="SomeOther.jar" version="2.0"/>
        <property name="jnlp.versionEnabled"
            value="true"/>
        <!-- ... -->
    </resources>
    1. 当启用jnlp.versionEnabled属性时,启动软件仅执行一次更新检查,以确保 JNLP 文件是最新的。软件将 JNLP 文件中指定的版本号与相应的 JAR 文件版本(根据第 1 步中提到的命名约定)进行比较,并仅更新过时的 JAR 文件。这种方法非常高效,因为仅在网络上进行 JNLP 文件的更新检查。所有其他版本检查都在本地进行。
      如果未找到具有正确版本号的文件,则启动软件将尝试加载默认的 JAR 文件(例如,DynamicTreeDemo.jar)。

    在后台执行更新检查

    如果用户立即运行您的 RIA 的最新版本并不是关键,您可以指定所有更新检查应在后台进行。在这种情况下,启动软件将启动本地缓存副本以供立即使用,并在后台下载 RIA 的新版本。下次用户尝试使用您的 RIA 时,将启动新版本的 RIA。要启用后台更新检查,请将以下行添加到您的 JNLP 文件中:

    <update check='background'/>

    以下代码片段显示了启用后台更新检查的示例 JNLP 文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <jnlp spec="1.0+" codebase="" href="">
        <information>
            <title>Applet Takes Params</title>
            <vendor>Dynamic Team</vendor>
        </information>
        <resources>
            <!-- Application Resources -->
            <j2se version="1.6+" href=
                "http://java.sun.com/products/autodl/j2se"/>
            <jar href="applet_AppletWithParameters.jar"
                main="true" />
        </resources>
        <applet-desc 
             name="Applet Takes Params"
             main-class="AppletTakesParams"
             width="800"
             height="50">
                 <param name="paramStr" value="someString"/>
                 <param name="paramInt" value="22"/>
         </applet-desc>
         <update check="background"/>
    </jnlp>

    确保 JRE 软件的存在

    原文:docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/ensuringJRE.html

    富互联网应用程序(RIA)通常需要客户端计算机上存在 Java 运行时环境(JRE)软件的最低版本。在部署 RIA 时,您需要确保客户端计算机安装了所需版本的 JRE 软件,以便您的 RIA 能够正常运行。使用部署工具包脚本,您至少有两种处理此要求的方式。

    • 您可以在用户访问您的网站时立即检查客户端 JRE 软件的版本,并在必要时安装最新版本。
    • 您可以让用户浏览网站,并在他们尝试使用您的 RIA 时检查并安装最新的 JRE。

    当用户访问您的网站时检查并安装最新的 JRE 软件

    以下示例检查用户是否安装了至少版本为 1.6.0_13 的 JRE 软件。如果没有,则代码会安装最新的 JRE 软件。请参见代码中的内联注释。

    <script src="https://www.java.com/js/deployJava.js"></script>
    <script>
        // check if current JRE version is greater than 1.6.0 
        alert("versioncheck " + deployJava.versionCheck('1.6.0_10+'));
        if (deployJava.versionCheck('1.6.0_10+') == false) {                   
            userInput = confirm(
                "You need the latest Java(TM) Runtime Environment. " +
                "Would you like to update now?");        
            if (userInput == true) {  
                // Set deployJava.returnPage to make sure user comes back to 
                // your web site after installing the JRE
                deployJava.returnPage = location.href;
                // Install latest JRE or redirect user to another page to get JRE
                deployJava.installLatestJRE(); 
            }
        }
    </script>

    仅在用户尝试使用您的 RIA 时安装正确的 JRE 软件

    当您在 runAppletcreateWebStartLaunchButton 函数中指定 JRE 软件的最低版本时,部署工具包脚本会确保客户端上存在所需版本的 JRE 软件才能运行您的 RIA。

    使用 runApplet 函数部署小程序,如下例所示。runApplet 函数的最后一个参数是运行您的小程序所需的最低版本(版本 1.6)。

    <script src="https://www.java.com/js/deployJava.js"></script>
    <script>
        var attributes = { code:'components.DynamicTreeApplet',
            width:300, height:300};
        var parameters = {jnlp_href: 'dynamictree_applet.jnlp'};
        deployJava.runApplet(attributes, parameters, '1.6');
    </script>

    要部署 Java Web Start 应用程序,请使用 createWebStartLaunchButton 函数并使用正确的最低版本参数(版本 1.6)。

    <script src="https://www.java.com/js/deployJava.js"></script>
    <script>
        var url = "dynamictree_applet.jnlp";
        deployJava.createWebStartLaunchButton(url, '1.6.0');
    </script>

    runAppletcreateWebStartLaunchButton 函数检查客户端的 JRE 软件版本。如果未安装最低版本,则函数会安装最新版本的 JRE 软件。

    问题和练习:深入部署

    原文:docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/QandE/questions.html

    问题

    1. 哪个脚本包含部署小程序和 Java Web Start 应用程序的函数?
    2. 真或假:你应该始终签署你的 RIA,以确保它始终正常工作。

    练习

    1. 编写 JavaScript 代码,使用ex.jnlp文件部署Exercise小程序。

    检查你的答案。

    教程:部署自包含应用程序

    原文:docs.oracle.com/javase/tutorial/deployment/selfContainedApps/index.html

    自包含应用程序由一个单独的可安装捆绑包组成,其中包含您的应用程序和运行应用程序所需的 JRE 的副本。当安装应用程序时,它的行为与任何本地应用程序相同。为用户提供自包含应用程序可以避免在浏览器中运行应用程序时出现的安全问题。

    您可以通过提供自己的图标来自定义自包含应用程序。可以设置文件关联,因此当用户打开您的应用程序可以处理的文件时,您的应用程序会自动启动。支持多个入口点,因此您可以在单个自包含应用程序捆绑包中提供一套应用程序。

    可使用 Java 打包工具打包自包含应用程序。javapackager命令可以从命令行创建自包含应用程序的捆绑包。NetBeans 也可以用于创建自包含应用程序捆绑包。本课程描述了如何使用 Ant 任务创建这些捆绑包。

    其他参考资料

    有关自包含应用程序的更多信息,请参阅 Java 平台标准版部署指南中的自包含应用程序打包

    有关 Java 打包的 Ant 任务的信息,请参阅JavaFX Ant Tasks,用于打包 Java SE 和 JavaFX 应用程序。

    有关javapackager命令的信息,请参阅Java 部署工具

    打包自包含应用程序的先决条件

    原文:docs.oracle.com/javase/tutorial/deployment/selfContainedApps/prereqs.html

    编译和打包应用程序需要 Java 开发工具包(JDK)。可安装的捆绑包必须在自包含应用程序将运行的平台上创建。例如,如果您的应用程序在 Windows 和 Linux 上运行,您必须在 Windows 上运行打包工具来创建.exe.msi捆绑包,并在 Linux 上运行打包工具来创建.rpm.deb文件。

    创建可安装的捆绑包需要第三方工具。以下表格标识了每个支持平台的工具。

    平台 格式 工具
    Windows EXE Inno Setup 5 或更高版本
    Windows MSI WiX Toolset 3.8 或更高版本
    Linux RPM RPMBuild
    Linux DEB Debian 打包工具
    OS X DMG
    OS X PKG

    转换现有应用程序

    原文:docs.oracle.com/javase/tutorial/deployment/selfContainedApps/converting.html

    任何独立的 Java 应用程序或 Java Web Start 应用程序都可以打包为自包含应用程序。如果您有一个 Java 小程序,请参阅将 Java 小程序重写为 Java Web Start 应用程序以获取有关将小程序转换为 Java Web Start 应用程序的信息,然后可以将其打包为自包含应用程序。

    在转换应用程序之前,请确保您的平台上已安装所需的先决条件。有关信息,请参阅打包自包含应用程序的先决条件。

    本节将 Dynamic Tree Demo 从部署 Java Web Start 应用程序转换为自包含应用程序。您可以从自包含应用程序示例下载此演示的源文件。

    设置目录

    确定并组织应用程序所需的文件。一个简单的应用程序可能只需要一个 JAR 文件。一个更复杂的应用程序可能还需要额外的库或资源。自定义资源,如图标或配置文件,也可以被自包含应用程序使用。

    Dynamic Tree Demo 只需要DynamicTreeDemo.jar文件,该文件位于项目的/dist目录中。用于 Java Web Start 版本的应用程序所需的 HTML 和 JNLP 文件不再需要,并且被自包含应用程序的打包工具忽略。

    为 Dynamic Tree Demo 提供自定义图标,代表应用程序在用户桌面上安装时的图标,为每个支持的平台提供一个图标。这些图标放置在/src/package/platform``目录中。为每个支持的平台提供不同格式的图标:Windows 使用.ico格式,Linux 使用.png格式,OS X 使用.icns格式。

    下面的示例显示了在创建自包含捆绑包之前 Dynamic Tree Demo 项目的目录结构:

    /packager_DynamicTreeDemo     <--- application project
       /dist
          DynamicTreeDemo.jar
          ...
       /src
          /package                <--- custom resources
             /linux
             /macosx
             /windows
          /webstartComponentArch  <--- application source files
          ...

    设置构建文件

    设置所需的打包任务的 Ant 任务。这些任务可以添加到项目的build.xml文件中,或放在一个被build.xml文件导入的单独文件中。

    对于 Dynamic Tree Demo,项目的根目录中的packager.xml文件包含了用于生成自包含应用程序包的 Ant 任务。packager.xml文件的源代码如下所示:

    <project name="DynamicTreePackaging" default="default" basedir="." >
        <echo>${java.home}/../lib/ant-javafx.jar</echo>
        <target name="package" depends="jar">
            <taskdef resource="com/sun/javafx/tools/ant/antlib.xml"
                     uri="javafx:com.sun.javafx.tools.ant"
                     classpath="${java.home}/../lib/ant-javafx.jar;src"/>
            <fx:deploy outdir="${basedir}/build/packager" 
                       outfile="DynamicTreeDemo"
                       nativeBundles="all"
                       verbose="false">
                <fx:application name="Dynamic Tree Demo"
                            mainClass="webstartComponentArch.DynamicTreeApplication"
                            version="1.0"
                />
                <fx:resources>
                    <fx:fileset dir="dist" includes="DynamicTreeDemo.jar"/>
                </fx:resources>
                <fx:info title="Dynamic Tree Demo"
                         vendor="My Company"
                         description="A Demo of a Dynamic Swing Tree"
                         category="Demos"
                         copyright="(c) 2014 My Company"
                         license="3 Clause BSD"
                />
                <fx:bundleArgument arg="linux.bundleName" value="dynamic-tree-demo"/>
                <fx:bundleArgument arg="email" value="maintainer@example.com"/>
                <fx:bundleArgument arg="mac.CFBundleName" value="Java Tree Demo"/>
                <fx:bundleArgument arg="win.menuGroup" value="Java Demos"/>
            </fx:deploy>
        </target>
    </project>

    使用以下信息设置 Ant 任务:

    • 为命名空间使用xmlns:fx="javafx:com.sun.javafx.tools.ant
    • 必须在fx:deploy任务之前执行taskdef任务。classpath属性包含来自 JDK 的ant-javafx.jar文件的位置和包含自定义资源的目录。对于动态树演示,classpath属性包括包含自定义图标的/src目录。
    • fx:deploy任务放在所需的目标内。指定本机二进制文件放置的输出目录,并指定要生成的本机二进制文件。
      如果为本机二进制文件指定了all,则将为您在执行此任务文件的平台上生成所有可能的二进制文件,包括磁盘映像。所有平台的有效值为allimage,在 Windows 和 Linux 上生成文件目录,在 OSX 上生成.app文件;以及installer,仅为平台生成可安装的捆绑包,而不生成磁盘映像。特定于平台的二进制文件的有效值为 Windows 的exemsi;Linux 的debrpm;OS X 的debpkgmac.appStore。您必须安装所需的工具以构建您选择的二进制文件。
      对于动态树演示,outdir属性设置为${basedir}/build/packagerbasedirproject元素中定义,在本例中设置为当前目录。nativeBundles属性设置为all,因此将构建在运行打包任务的平台上的所有格式。
    • verbose属性是可选的。使用此属性提供诊断信息。
    • 提供有关应用程序的信息。在fx:application元素的name属性和fx:info元素的title属性中设置应用程序的名称。在fx:application元素的version属性中设置应用程序的版本。使用fx:info元素提供应用程序的描述、供应商名称、许可信息和其他元数据。
    • 关于 JAR 文件和其他资源的信息设置在fx:resources元素中。
    • 启动信息设置在fx:application元素的mainclass属性中。
      对于动态树演示,使用简单的单个启动器webstartComponentArch.DynamicTreeApplication,这是应用程序的主类。
    • 其他平台特定的自定义设置在fx:bundleArgument元素中提供。未被打包程序识别的参数将被忽略,因此一个构建文件可以包含所有平台的打包信息。对于动态树演示,应用了以下自定义设置:
    • Linux 的捆绑包名称设置为dynamic-tree-demo
    • 提供了一个电子邮件地址。
    • 在 OS X 菜单栏中显示的名称设置为Java Tree Demo
    • 在 Windows 中存储应用程序的菜单组名称设置为Java Demos

    生成捆绑包

    运行您在要为自包含应用程序构建捆绑包的平台上创建的打包任务。

    对于动态树演示,请从项目的根目录运行以下命令:

    ant package

    当打包任务完成时,应用项目中的build/packager/bundles目录包含生成的本机二进制文件。

    以下示例显示了在为 Windows 生成自包含捆绑包后,动态树演示项目的目录结构:

    /packager_DynamicTreeDemo     <--- application project
       /build
          /packager
             /bundles
                Dynamic Tree Demo         <---folder image
                Dynamic Tree Demo-1.0.exe <---EXE installer
                Dynamic Tree Demo-1.0.msi <---MSI installer
          ...   
       /dist
          DynamicTreeDemo.jar
          ...
       /src
          /package                <--- custom resources
             /linux
             /macosx
             /windows
          /webstartComponentArch  <--- application source files
          ...

    请注意,除了自包含捆绑包之外,打包工具始终会为应用程序生成 JAR、JNLP 和 HTML 文件。这些文件提供了分发应用程序的其他选项。

    其他参考资料

    欲了解更多关于自包含应用程序的信息,请参阅自包含应用程序打包

    欲了解有关 Java 打包工具的 Ant 任务的更多信息,请参阅JavaFX Ant Tasks,这些任务用于 Java 和 JavaFX 应用程序。

    使用文件关联

    原文:docs.oracle.com/javase/tutorial/deployment/selfContainedApps/fileassociation.html

    为用户提供自包含应用程序的一个优势是能够设置文件关联。 可以基于 MIME 类型或文件扩展名将特定类型的文件与您的应用程序关联起来,以便您的应用程序用于打开关联的文件。 例如,如果您的应用程序编辑文本文件,则可以设置一个文件关联,当用户双击扩展名为.txt的文件时运行您的应用程序。

    File Association Demo 读取 JavaScript 和 Groovy 代码。 使用 MIME 类型和文件扩展名,应用程序与 JavaScript 和 Groovy 文件关联。

    您可以从 Self-Contained Application Examples 下载 File Association Demo 的源文件。

    设置文件关联

    用于生成自包含应用程序捆绑包的 Ant 任务位于 File Association Demo 的build.xml文件中。 Ant 元素用于将文件扩展名或 MIME 类型与您的应用程序关联起来。 Linux 捆绑程序需要 MIME 类型,Windows 捆绑程序需要文件扩展名,OS X 捆绑程序至少需要其中一个属性。 最佳实践是同时使用 MIME 类型和文件扩展名,使 MIME 类型和文件扩展名之间实现一对一映射,这样您可以在多个平台上使用相同的构建文件。 有关此元素的更多信息,请参见fx:association。

    以下代码显示了在fx:deploy元素中需要包含的内容,以将应用程序与扩展名.js.groovy以及 MIME 类型text/javascripttext/x-groovy关联起来。

    <fx:info title="File Association Demo"
             vendor="MySamples"
             description="A Demo of File Associations for Java Packager"
             category="Demos"
             license="3 Clause BSD">
        <fx:association extension="js" mimetype="text/javascript" description="JavaScript Source"/>
        <fx:association extension="groovy" mimetype="text/x-groovy" description="Groovy Source"/>
    </fx:info>

    如果捆绑程序不支持文件关联,则将忽略关联。 截至 JDK 的 8u40 版本,Windows EXE 和 MSI 捆绑程序,Linux DEB 和 RPM 捆绑程序以及 Mac .app 捆绑程序支持文件关联。 OS X PKG 和 DMG 捆绑程序通过使用 Mac .app 捆绑程序支持文件关联。

    请查看build.xml以获取完整的构建代码。

    要生成 File Association Demo 的可安装捆绑包,请参见 Converting an Existing Application 中的“生成捆绑包”部分。

    从关联文件启动

    安装程序在将自包含应用程序捆绑包安装到用户系统时设置文件关联。 安装应用程序后,打开与您的应用程序关联的文件会导致启动您的应用程序。 启动应用程序所采取的操作取决于其运行的平台。

    在 Linux 和 Windows 上启动

    在 Linux 和 Windows 上,当基于文件关联启动应用程序时,被打开的文件作为参数传递给主类,该主类覆盖了类的默认参数。对于文件关联演示,参数在启动应用程序的实例后传递给loadscript方法。每打开一个文件,都会启动一个不同的应用程序实例。

    请查看ScriptRunnerApplication.java以获取 Linux 和 Windows 版本的代码。

    在 OS X 上启动

    在 OS X 上,只运行一个应用程序实例。当打开关联文件时,会向应用程序发送一个事件。应用程序必须注册一个事件监听器来处理该事件。

    OS X 的文件关联演示有一个子类,其主方法与 Linux 和 Windows 版本不同。该主方法处理默认参数的方式与 Linux 和 Windows 版本的主方法相同,然后向 OS X 注册一个监听器以处理FileOpenHandler。当打开关联文件时,此监听器的事件方法被调用,并且文件名从OpenFilesEvent对象的getFiles方法中提取。

    请查看ScriptRunnerApplicationMac.java以获取 OS X 版本的代码。

    构建 OS X 版本的文件关联演示需要访问随 Oracle JDK 提供的 OS X 特定类。大多数com.apple.eawt类不包含在javac编译器使用的符号文件中。为了告诉编译器忽略符号文件,在构建文件中的-pre-init Ant 任务中向javac编译器传递-XDignore.symbol.file=true参数。请参见build.xml

    关于文件关联演示的更多信息

    文件关联演示项目包含了应用程序的 Java 源文件,位于/src/sample/fa目录中。自定义图标位于/src/package/platform``目录中。要与应用程序打包的示例文件位于/src目录中。

    为了处理 Groovy 代码,文件关联演示需要 Groovy 库。构建过程会将 Groovy 库下载到/lib目录。有关信息,请参见添加外部库。

    JAR 文件生成后,构建过程将/src/lib目录复制到/dist目录。然后,/dist目录中包含了应用程序的所有文件。

    文件关联演示接受文件名作为参数。如果应用程序是通过打开关联文件启动的,那么关联文件的名称将被传递进来。如果应用程序是直接启动的,则会传递应用程序捆绑的示例文件 sample.js。请参阅提供默认参数以获取更多信息。

    需要管理员权限才能设置文件关联。默认情况下,Windows 的 EXE 安装程序不会请求管理员权限。为了强制请求文件关联演示的管理员权限,捆绑参数 win.exe.systemWide 被设置为 true。这个设置表示执行系统范围的安装,需要管理员权限。

    文件关联演示在 Linux、OS X 和 Windows 上运行。演示设置为使用一个包含所有平台信息的单个构建文件。请参阅为所有平台使用通用构建文件以获取更多信息。

Java 中文官方教程 2022 版(十三)(3)https://developer.aliyun.com/article/1486366

相关文章
|
15天前
|
Java 开发者 UED
【实战宝典】Java异常处理大师级教程:throws关键字,让异常声明成为你的专属标签!
【实战宝典】Java异常处理大师级教程:throws关键字,让异常声明成为你的专属标签!
30 3
|
27天前
|
前端开发 Java Maven
【前端学java】全网最详细的maven安装与IDEA集成教程!
【8月更文挑战第12天】全网最详细的maven安装与IDEA集成教程!
56 2
【前端学java】全网最详细的maven安装与IDEA集成教程!
|
16天前
|
Java 开发者
Java多线程教程:使用ReentrantLock实现高级锁功能
Java多线程教程:使用ReentrantLock实现高级锁功能
19 1
|
1月前
|
存储 网络协议 Oracle
java教程
java教程【8月更文挑战第11天】
23 5
|
14天前
|
Java API
Java与Lua互相调用简单教程
【8月更文挑战第29天】在软件开发中,Java以其强大的稳定性和广泛的生态系统著称,而Lua则因其轻量级、灵活和嵌入式的特点在脚本编写、游戏开发等领域大放异彩。将两者结合使用,可以充分利用Java的底层能力和Lua的快速开发优势。本文将通过一个简单的教程,介绍如何在Java程序中嵌入并执行Lua脚本,以及如何在Lua中调用Java方法。
16 0
|
2月前
|
SQL 安全 Java
「滚雪球学Java」教程导航帖(更新2024.07.16)
《滚雪球学Spring Boot》是一个面向初学者的Spring Boot教程,旨在帮助读者快速入门Spring Boot开发。本专通过深入浅出的方式,将Spring Boot开发中的核心概念、基础知识、实战技巧等内容系统地讲解,同时还提供了大量实际的案例,让读者能够快速掌握实用的Spring Boot开发技能。本书的特点在于注重实践,通过实例学习的方式激发读者的学习兴趣和动力,并引导读者逐步掌握Spring Boot开发的实际应用。
60 1
「滚雪球学Java」教程导航帖(更新2024.07.16)
WXM
|
2月前
|
Oracle Java 关系型数据库
Java JDK下载安装及环境配置超详细图文教程
Java JDK下载安装及环境配置超详细图文教程
WXM
230 3
|
2月前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
61 2
|
2月前
|
Web App开发 XML Java
《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)
【7月更文挑战第14天】这篇教程介绍了如何使用Java和Selenium构建一个支持跨浏览器测试的自动化测试框架。设计的核心是通过读取配置文件来切换不同浏览器执行测试用例。配置文件中定义了浏览器类型(如Firefox、Chrome)和测试服务器的URL。代码包括一个`BrowserEngine`类,它初始化配置数据,根据配置启动指定的浏览器,并提供关闭浏览器的方法。测试脚本`TestLaunchBrowser`使用`BrowserEngine`来启动浏览器并执行测试。整个框架允许在不同浏览器上运行相同的测试,以确保兼容性和一致性。
63 3
|
2月前
|
存储 Web App开发 Java
《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
234 5