Java教程是针对JDK 8编写的。本页面描述的示例和实践不利用后续版本引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改以获取Java SE 9及其后续版本中更新的语言功能的摘要。
请参阅JDK发布说明以获取有关所有JDK版本的新功能、增强功能和已删除或弃用选项的信息。
要部署你的Java Web Start应用程序,首先要编译源代码,将其打包为JAR文件,并对JAR文件进行签名。
Java Web Start应用程序是通过使用Java网络启动协议(JNLP)来启动的。因此,你必须创建一个JNLP文件来部署你的应用程序。
部署工具包脚本包含一些有用的JavaScript函数,可以用来在网页上部署Java Web Start应用程序。
如果你对这些部署技术不熟悉,请在继续之前阅读深入部署教程。
以下是一些逐步说明,用于打包和部署你的应用程序。动态树演示应用程序用于说明Java Web Start应用程序的部署。你可能希望设置构建脚本来执行以下某些步骤。
点击以下启动按钮来启动动态树演示应用程序。
在动态树演示应用程序中,编译后的类文件放在build/classes/webstartComponentArch
目录中。
对于动态树演示小程序,创建一个名为mymanifest.txt
的文件,放在build/classes
目录中,并添加Permissions
、Codebase
和Application-Name
属性。该小程序不需要访问用户的系统资源,所以使用sandbox
作为权限。使用将加载该示例的域名作为代码库,例如myserver.com
。将以下属性添加到mymanifest.txt
文件中。
Permissions: sandbox Codebase: myserver.com Application-Name: 动态树演示
其他的清单属性可用于限制小程序只能使用受信任的代码,并为需要在特权Java代码和沙盒Java代码之间进行调用,或者包含调用小程序的JavaScript代码的小程序提供安全性。请参阅通过清单属性增强安全性教程,了解更多可用的清单属性。
mymanifest.txt
文件中包含清单属性。
例如,以下命令创建一个JAR文件,其中包含build/classes/webstartComponentArch
目录中的类文件和build/classes
目录中的清单文件。
% cd build/classes % jar cvfm DynamicTreeDemo.jar mymanifest.txt webstartComponentArch
请参阅在JAR文件中打包程序教程,了解更多关于创建和使用JAR文件的内容。
请参阅签名JAR文件教程了解更多信息。
如果你想要使用带有安全性的已签名JNLP文件,需要在签名JAR文件之前创建JNLP文件并将其包含在JAR文件中。请参阅Java平台标准版部署指南中的已签名JNLP文件。
这是用于启动动态树演示应用程序的JNLP文件。此应用程序未请求权限,因此在安全沙盒中运行。以下是
的源代码:dynamictree_webstart.jnlp
<?xml version="1.0" encoding="UTF-8"?> <jnlp spec="1.0+" codebase= "https://docs.oracle.com/javase/tutorialJWS/samples/deployment/webstart_ComponentArch_DynamicTreeDemo" href="dynamictree_webstart.jnlp"> <information> <title>动态树演示</title> <vendor>动态团队</vendor> </information> <resources> <!-- 应用程序资源 --> <j2se version="1.7+" href="http://java.sun.com/products/autodl/j2se"/> <jar href="DynamicTreeDemo.jar" main="true" /> </resources> <application-desc name="动态树演示应用程序" main-class= "webstartComponentArch.DynamicTreeApplication" width="300" height="300"> </application-desc> <update check="background"/> </jnlp>
codebase
和href
属性是可选的。当部署使用较早版本的Java Runtime Environment软件运行的Java Web Start应用程序时,必须指定codebase
和href
属性。
在示例中,动态树演示应用程序部署在
中。JavaWebStartAppPage.html
<body> <!-- ... --> <script src= "https://www.java.com/js/deployJava.js"></script> <script> // 使用JavaScript获取相对于HTML页面的JNLP文件位置 var dir = location.href.substring(0, location.href.lastIndexOf('/')+1); var url = dir + "dynamictree_webstart.jnlp"; deployJava.createWebStartLaunchButton(url, '1.7.0'); </script> <!-- ... --> </body>
如果您不确定最终用户的浏览器是否启用了JavaScript解释器,您可以通过创建指向JNLP文件的链接直接部署Java Web Start应用程序,如下所示:
<a href="/JNLP文件的绝对路径/dynamictree_webstart.jnlp">启动记事本应用程序</a>
如果您使用直接链接部署Java Web Start应用程序,您将无法利用部署工具包函数提供的额外检查。有关详细信息,请参阅部署深入课程中的部署Java Web Start应用程序。
对于本示例,请将DynamicTreeDemo.jar
、dynamictree_webstart.jnlp
和JavaWebStartAppPage.html
放置在本地机器或Web服务器上的同一目录中。优选使用Web服务器。若要从本地机器运行,必须将应用程序添加到“例外站点列表”,该列表由Java控制面板的“安全”选项卡管理。
下载动态树示例的源代码以进行进一步的实验。