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

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

部署 Java Web Start 应用程序

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

您可以使用部署工具包脚本的createWebStartLaunchButton函数部署 Java Web Start 应用程序。Java Web Start 应用程序使用 Java 网络启动协议(JNLP)启动。createWebStartLaunchButton函数生成一个链接(HTML 锚标签 - )到 Java Web Start 应用程序的 JNLP 文件。

生成的锚标签是 Java Web Start 应用程序的 按钮。当最终用户点击启动按钮时,部署工具包脚本确保已安装适当的 Java 运行时环境(JRE)软件,然后启动 Java Web Start 应用程序。


**注意:**根据浏览器类型,当您尝试查看网页源代码时,可能无法查看部署工具包脚本生成的 HTML。要查看生成的 HTML,请尝试在加载后保存 HTML 页面,或使用诸如 Firebug(Mozilla Firefox 附加组件)之类的工具。



**注意:**如果客户端没有所需的 JRE 软件最低版本,部署工具包脚本会将浏览器重定向到http://www.java.com,以允许用户下载最新的 JRE 软件。


函数签名:createWebStartLaunchButton: function(jnlp, minimumVersion)createWebStartLaunchButton: function(jnlp)

参数:

  • jnlp – 包含 Java Web Start 应用程序部署信息的 JNLP 文件的 URL。此 URL 应为绝对路径。
  • minimumVersion – 运行此应用程序所需的 JRE 软件的最低版本

用法:

  • 指定运行应用程序所需的 JRE 软件的最低版本
<script src="https://www.java.com/js/deployJava.js"></script>
<script>
    var url = "http://java.sun.com/javase/technologies/desktop/javawebstart/apps/notepad.jnlp";
    deployJava.createWebStartLaunchButton(url, '1.6.0');
</script>
  • 使 Java Web Start 应用程序能够在任何 JRE 软件版本上运行
    如果您的应用程序没有最低 JRE 软件版本要求,请使用createWebStartLaunchButton: function(jnlp)函数部署 Java Web Start 应用程序。

**注意:**当使用任何先前描述的createWebStartLaunchButton函数部署时,必须在 Java Web Start 应用程序的 JNLP 文件中指定绝对的 codebase。这样可以通过javaws 命令从命令行启动 Java Web Start 应用程序。


更改启动按钮

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

如果您不喜欢默认的启动按钮 ,或者您有另一幅标准化的图像,您可以更改您的 Java Web Start 应用程序的启动按钮图像。

使用deployJava.launchButtonPNG变量指向启动按钮图像的位置。

变量: deployJava.launchButtonPNG

用法: 提供替代图像 URL

在这个例子中,记事本应用程序的启动按钮现在是杜克挥手的图像。

<script src="https://www.java.com/js/deployJava.js"></script>
<script>
    deployJava.launchButtonPNG='https://docs.oracle.com/javase/tutorial/images/DukeWave.gif';
    var url = "https://docs.oracle.com/javase/tutorialJWS/samples/deployment/NotepadJWSProject/Notepad.jnlp";
    deployJava.createWebStartLaunchButton(url, '1.6.0');
</script>

记事本应用程序的新启动按钮(杜克挥手)如下。点击杜克的图像启动记事本应用程序。

//https://docs.oracle.com/javase/tutorial/images/DukeWave.gif’; var url = ‘https://docs.oracle.com/javase/tutorialJWS/samples/deployment/NotepadJWSProject/Notepad.jnlp’; deployJava.createWebStartLaunchButton(url, ‘1.6.0’); //]]>


注意: 如果您看不到示例运行,请确保在浏览器中启用 JavaScript 解释器,以便部署工具包脚本能够正常运行。


在没有 Codebase 的情况下部署

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

从 Java SE 7 发行版开始,您不必为 Java Web Start 应用程序的 Java 网络启动协议 (JNLP) 文件中的codebase属性指定绝对路径。您可以在不修改codebase属性中的路径的情况下在不同环境中开发和测试应用程序。如果未指定 codebase,则 Java Web Start 软件会假定 codebase 相对于启动 Java Web Start 应用程序的网页。

当 JNLP 文件不包含codebase属性时,可以使用部署工具脚本的以下函数在网页中部署 Java Web Start 应用程序:

  • launchWebStartApplication – 在 HTML 链接中使用此函数部署您的 Java Web Start 应用程序。
  • createWebStartLaunchButtonEx – 使用此函数为您的 Java Web Start 应用程序创建一个启动按钮。

注意: 要运行通过先前指定的函数部署的 Java Web Start 应用程序,至少需要 Java SE 7 发行版。如果客户端没有至少 Java SE 7 发行版,函数会指示用户在启动 Java Web Start 应用程序之前安装所需的 Java Runtime Environment (JRE) 软件。


函数签名: launchWebStartApplication: function(jnlp)

参数:

jnlp – 包含 Java Web Start 应用程序部署信息的 JNLP 文件的路径。此路径可以相对于部署 Java Web Start 应用程序的网页。

用法:

在以下示例中,launchWebStartApplication函数在 HTML anchor (a) 标签的href属性中被调用。

dynamictree_webstart_no_codebase.jnlp JNLP 文件用于部署动态树演示应用程序。

<script src="https://www.java.com/js/deployJava.js"></script>
<a href="javascript:deployJava.launchWebStartApplication('dynamictree_webstart_no_codebase.jnlp');">Launch</a>

当用户点击生成的 HTML 链接时,将启动 Java Web Start 应用程序。

函数签名: createWebStartLaunchButtonEx: function(jnlp)

参数:

jnlp – 包含 Java Web Start 应用程序部署信息的 JNLP 文件的路径。此路径可以相对于部署 Java Web Start 应用程序的网页。

用法:

以下示例展示了createWebStartLaunchButtonEx函数的用法。

dynamictree_webstart_no_codebase.jnlp JNLP 文件用于部署动态树演示应用程序。

<script src="https://www.java.com/js/deployJava.js"></script>
<script>        
    var jnlpFile = "dynamictree_webstart_no_codebase.jnlp";
    deployJava.createWebStartLaunchButtonEx(jnlpFile);
</script>

当用户点击生成的启动按钮时,将启动 Java Web Start 应用程序。

在浏览器中打开JavaWebStartAppPage_No_Codebase.html以查看通过本主题中描述的功能部署的动态树演示应用程序。


注意:

您还可以通过在系统命令提示符中使用完整的 JNLP 文件的 URL 调用javaws命令来启动 Java Web Start 应用程序,如下面的代码片段所示。

javaws http://example.com/dynamictree_webstart_no_codebase.jnlp

下载源代码以进一步进行实验的动态树演示示例。

检查客户端 JRE 软件版本

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

有许多原因要检查客户端计算机上是否安装了特定版本的 Java 运行时环境(JRE)软件。例如,您可能希望根据客户端的 JRE 软件版本启动不同版本的富互联网应用程序(RIA),或者根据客户端的 JRE 软件版本将用户重定向到不同的页面。

使用部署工具包脚本的versionCheck函数来检查客户端是否安装了特定版本或一系列 JRE 版本。

函数签名: versionCheck: function(versionPattern)

参数:

  • versionPattern – 字符串,指定要检查的版本或版本范围,例如"1.4",“1.5.0*”(1.5.x 系列),以及"1.6.0_02+"(大于或等于 1.6.0_02 的任何版本)。

用法: 根据客户端的 JRE 软件版本创建不同的用户体验

在这个例子中,仅当客户端上的 JRE 软件版本大于或等于 1.6 时,才会为记事本应用程序创建一个启动按钮。如果不是,则浏览器将重定向到oracle.com

<script src="https://www.java.com/js/deployJava.js"></script>
<script>
    if (deployJava.versionCheck('1.6+')) {            
        var url = "https://docs.oracle.com/javase/tutorialJWS/deployment/webstart/examples/Notepad.jnlp";
        <!-- you can also invoke deployJava.runApplet here -->
        deployJava.createWebStartLaunchButton(url, '1.6.0'); 
    } else {
        document.location.href="http://oracle.com";
    }
</script>

注意: 根据客户端操作系统和 Java 平台的版本,您可能可以在 JRE 软件的主要版本级别(例如 1.6)或更精细的更新级别(例如 1.6.0_10)上验证版本信息。


Java 网络启动协议

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

Java 网络启动协议(JNLP)使应用程序能够通过使用托管在远程 Web 服务器上的资源在客户端桌面上启动。Java 插件软件和 Java Web 启动软件被视为 JNLP 客户端,因为它们可以在客户端桌面上启动远程托管的小程序和应用程序。有关详细信息,请参阅Java 网络启动协议和 API 规范更改日志

最近部署技术的改进使我们能够通过使用 JNLP 启动丰富的互联网应用程序(RIA)。通过使用这种协议,可以启动小程序和 Java Web 启动应用程序。通过使用 JNLP 启动的 RIA 还可以访问 JNLP API。这些 JNLP API 允许 RIA 在用户许可的情况下访问客户端桌面。

JNLP 由 RIA 的 JNLP 文件启用。JNLP 文件描述了 RIA。JNLP 文件指定了主 JAR 文件的名称,运行 RIA 所需的 Java 运行时环境软件的版本,名称和显示信息,可选包,运行时参数,系统属性等。

您可以在以下主题中找到有关通过使用 JNLP 部署 RIA 的更多信息:

  • 部署小程序
  • 部署 Java Web 启动应用程序
  • JNLP API
  • JNLP 文件的结构

JNLP 文件的结构

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

本主题描述了用于丰富互联网应用程序(RIA)的 Java 网络启动协议(JNLP)文件的语法。

下面的代码片段显示了一个 Java Web Start 应用程序的示例 JNLP 文件:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="">
    <information>
        <title>Dynamic Tree Demo</title>
        <vendor>Dynamic Team</vendor>
        <icon href="sometree-icon.jpg"/>
        <offline-allowed/>
    </information>
    <resources>
        <!-- Application Resources -->
        <j2se version="1.6+" href=
           "http://java.sun.com/products/autodl/j2se"/>
        <jar href="DynamicTreeDemo.jar"
            main="true" />
    </resources>
    <application-desc
         name="Dynamic Tree Demo Application"
         main-class="webstartComponentArch.DynamicTreeApplication"
         width="300"
         height="300">
     </application-desc>
     <update check="background"/>
</jnlp>

下表描述了 JNLP 文件中常用的元素和属性。单击父链接查看元素的父级。


注意: 此表格不包括 JNLP 文件的所有可能内容。有关更多信息,请参阅Java 网络启动协议和 API 规范更改日志


JNLP 文件中常用的元素和属性

元素 属性 描述 自版本 必需
jnlp JNLP 文件的最顶层 xml 元素。 1.0
spec 属性的值可以是 1.0、1.5 或 6.0,也可以使用通配符,如 1.0+。表示此 JNLP 文件可以使用的 JNLP 规范的最低版本。 1.0
codebase JNLP 文件中 href 属性中指定的所有相对 URL 的基本位置。 1.0
href JNLP 文件本身的 URL。 1.0
version 正在启动的 RIA 的版本,以及 JNLP 文件本身的版本。 1.0
information ^(parent) 包含描述 RIA 及其来源的其他元素。 1.0

| | os | 应考虑的操作系统。 | 1.5.0 | |

title ^(parent)
vendor ^(parent)
homepage ^(parent)
description ^(parent)
icon ^(parent)
offline-allowed ^(父级)
快捷方式 ^(父级)
桌面 ^(父级)
菜单 ^(父级)
关联 ^(父级)
相关内容 ^(父级)
更新 ^(父级)
安全 ^(父级)
all-permissions ^(父级)
j2ee-application-client-permissions ^(父级)
资源 ^(父级)
java or j2se ^(parent)
jar ^(parent)
nativelib ^(parent)
extension ^(parent)
ext-download ^(parent)
package ^(parent)
property ^(parent)
application-desc ^(parent)
argument ^(parent)
applet-desc ^(parent)
param ^(parent)
component-desc ^(parent)
installer-desc ^(parent)

编码 JNLP 文件

Java Web Start 软件支持在 Java 平台支持的任何字符编码中对 JNLP 文件进行编码。有关 Java 平台中字符编码的更多信息,请参阅支持的编码指南。要对 JNLP 文件进行编码,请在该文件的 XML prolog 中指定一个编码。例如,以下行表示 JNLP 文件以 UTF-16 编码。

<?xml version="1.0" encoding="utf-16"?>

注意: XML prolog 本身必须是 UTF-8 编码的。


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

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