部署 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