1.Java Web Start简介
Java Web Start是帮助客户机端应用程序开发的一个新技术,该技术的独特之处在于将你关心客户机是如何启动(从Web浏览器或是桌面)中解放出来。并且,该技术提供了一个使Web服务器能独立发布和更新客户机代码的集合部署方案。
Java Web Start是一个软件技术,它包含了applet的可移植性、Servlet和Java Server Pages(JSP)的可维护性以及象XML和HTML这样的标记语言的简易性。它是基于Java的应用程序,允许从标准的Web服务器启动、部署和更新功能完成的Java 2客户机应用程序。
Java Web Start自身是一个Java应用程序,所以该软件是平台独立的,并且支持Java2平台的任何客户机系统都支持该软件。当客户机应用程序启动时,Java Web Start自动执行更新,在从原来的高速缓存装入应用程序的同时,从Web下载罪行的版本。Java Web Start还提供了一个Java应用程序管理器(Java Application Manager)实用程序,即提供了多种选项,如清除下载的应用程序的高速缓存、指定多种JRE的使用,设置HTTP代理、还允许最终用户组织他们的Java应用程序。
Java Web Start站点:
http://java.sun.com/javase/technologies/desktop/javawebstart/index.jsp
JNPL规范:http://jcp.org/en/jsr/detail?id=056
2.JNLP简介
JNLP(全称Java Network Launch Protocol)意为Java网络装载协议。JNLP是一为Java Web Start应用程序提供基本的元素和描述的XML文件。JNLP是Java Web Start的核心。
JNLP应用程序能使应用程序像标准的JAVA Applet一样通过WEB浏览器访问,并且在客户机主机上JNLP可以限制为一个安全的“沙箱(sandbox)”.不像Applets,JNLP应用程序不运行的客户的浏览器内部;相反,WEB浏览器只作为应用程序的一个起点或安装工具。
JAVA桌面应用程序以JNLP 的方式发布,如果版本升级后,不需要再向所有用户发布版本,只需要更新服务器的版本,这就相当于让java应用程序有了web应用的优点。
3.实例应用
1.搭建Web服务器
a)Tomcat正常运行。
b)找到TomcatHOME/conf下的web.xml文件,在其中添加application/x-java-jnlp-file以便支持JNLP文件;如下图所示:
2.部署应用程序
a)开发应用程序。
b)将应用程序以及资源文件打成一个或多个Jar包。
c)如果应用程序用到了运行这个应用程序的本地资源,那么你的应用程序就必须先签名然后才可以发布;如果不需要用到本地资源,到这一步就可以发布应用程序。
d)怎样给应用程序签名:
i.首先确保你已经安全安装了J2se的环境,还有keytool工具,它位于J2SE SDK的bin目录下;如下图所示:
ii.到DOS状态下,进入你需要发布应用程的jar包所在的目录,运行下面这句话keytool –genkey –keystore myKeystore –alias jwstest 它将会提示你输入用户名、密码等,不用理睬它,按照提示随便输入即可,但一定要记住密码。运行结束它将会在当前路径下创建名为myKeystore的文件。如下图所示:
iii.如果你想察看一下刚才生成的myKeystore文件的内容,可以输入这局话keytool –list -keystore myKeystore,再输入密码:
显示结果如下图所示:
iv.对你需要发布应用程序的jar包进行签名,运行这句话:Jarsigner –keystore myKeystore yourtest.jar jwstest,其中yourtest.jar是你的jar包名,你需要修改它,别的就不必修改了。运行时会提示你输入密码,就是你刚才生成myKeystore文件时设定的密码。如下图所示:
e)部署应用程序,将已经经过签名的jar包拷入web工程的目录下(注意:不能拷贝到WEB-INF目录下)。
3.JNLP文件介绍
a)编写Java Web Start的核心配置文件JNLP。JNLP文件符合标准的XML语法,也就是说JNLP就是一个XML文件。编写的最好方式还是修改已有的JNLP文件。
<?xml version="1.0" encoding="UTF-8"?>
<!-- jnlp spec必须是1.0以上版本,次数用的是1.0+;
codebase 属性指出搜索应用程序资源的顶级URL。
href 属性设置是为了让应用程序并入 Java Web Start 应用程序管理器-->
<jnlp spec="1.0+" codebase="http://localhost:8081/NetJavaProject" href="jwspalette.jnlp">
<!-- information 标记(如 title、vendor 等)用于提供来自 Java Web Start 应用程序管理器的关于应用程序的附加信息。 homepage ref 属性是专门用于指向 Web URL 从而用户可以去提供了关于应用程序的更多的信息的 Web 页面。最有趣的 information 标记是 offline-allowed 属性;该属性决定了客户机 Java 应用程序是否能离线启动。当离线运行客户机 Java 应用程序时,Java Web Start 将继续判定来自 Web 服务器的最新的文件;在多数情况下,这个方案将引起快速的超时(因为位置被指定要离线启动),并且应用程序从本地高速缓存启动 -->
<information>
<!--title :应用程序标题 vendor:供应商;title/vendor元素必须,会显示在”javaws -viewer”命令打开的应用程序缓存查看器(Java Application Cache Viewer)中 -->
<title>NetJava Application </title>
<vendor>NetJava</vendor>
<!—description:对应用程序的描述,可以有多对<description> </description>,可有可无的 -->
<description>NetJava Application </description>
<!--offline-allowed:选择项,允许离线启动,可以使用javaws –offine命令 -->
<offline-allowed/>
</information>
<!-- resource 标记考虑到 JNLP 文件指定应用程序使用哪些 JAR 文件和如何下载 JAR 文件;即,是急切的还是不紧不慢的。这个特性在当用户要下载大量的文件而对用户来说不是所有的文件都是客户机执行所需要的时是非常有帮助的。缺省的,多数资源是急切的下载的,在这样情况下,JAR 文件和资源在应用程序启动前被下载。不紧不慢的下载的资源只有当 Java 虚拟机(JVM)触发从应用程序载入资源或文件时才被下载。不紧不慢的下载资源的一个示例是客户机的帮助文件;考虑到了客户机的更快的启动和执行,只有在用户实际上向客户机请求帮助文件时,才会下载这些文件。然而,一旦用户请求了一个帮助文件,在请求过程中适当的 JAR 就会被下载,并伴有一个通知用户大致的下载时间的窗口 -->
<resources>
<!—指定客户端需要安装的j2se版本,下面指定为1.6+,如果版本是1.4,在连接此JNLP文件时会提示更新J2se版本 -->
<j2se version="1.6+"/>
<!—指定要下载到本地的jar文件(注意:所有的文件都需要打包才能够下载),可以包含一些资源文件,如icons/configuration files,但是都必须使用类的getResource()方法获取 -->
<jar href="palette.jar"/>
</resources>
<!--指定操作系统以及jdk版本-->
<resources os="Windows">
<j2se version="1.6+"/>
</resources>
<!—Application-desc必须,指定Web Start启动时执行jar文件中的哪个类 -->
<application-desc main-class="cn.netjava.palette.Palette"/>
<!-- security 属性。缺省的,任何从 Java Web Start 客户机启动的 Java 应用程序在一个安全的、受限制的环境执行,该环境中不允许进行本地文件访问、与其它计算机的网络连接等等。然而,对于要对客户机和网络可以完全访问的特性丰富的客户机来说, all-permissions 值是用于给予客户机完全访问的权限的。为具有对本地机的完全访问,Java 应用程序所使用和装入的所有 JAR 文件和资源必须被数字签名 -->
<security>
<all-permissions/>
</security>
</jnlp>
4.JSP页面
编写用于访问的页面如下:(index.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
System.out.println(basePath);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>简单画板</title>
</head>
<body>
<OBJECT codebase="http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab#Version=6,0,0,0"
classid="clsid:5852F5ED-8BF4-11D4-A245-0080C6F74284" height=0 width=0>
<PARAM name="app" value="http://222.247.51.150:8081/NetJavaProject/jwspalette.jnlp">
<PARAM name="back" value="true">
<!-- Alternate HTML for browsers which cannot instantiate the object -->
<A href="http://java.sun.com/javase/downloads/ea.jsp">
Download Java Web Start</A><br>
<A href="http://222.247.51.150:8081/NetJavaProject/jwspalette.jnlp">简单画板</A>
</OBJECT>
</body>
</html>
5.完成发布和测试
首先WEB将项目打包成war的包;再将war包拷贝到Tomcat目录下的webapps目录中
,并启动Tomcat。测试的访问路径是http://localhost:8080/NetJavaProject/index.jsp 。这样我们就能将Swing Application项目发布到互联网上了。当然还有很多的细节问题,期待你们将细节修改好……
JNLP参考资料:
http://java.sun.com/javase/6/docs/technotes/guides/javaws/developersguide/contents.html
http://java.sun.com/javase/6/docs/technotes/guides/jweb/deployment_advice.html
分享到:
相关推荐
标题“JNLP ant webstart sign genkey sample”涉及到的是Java网络启动(Java Web Start,JWS)技术,以及如何使用Ant构建工具来签名JNLP应用。在Java Web Start中,JNLP(Java Network Launch Protocol)是用于启动...
当用户点击一个支持Java Web Start的链接时,浏览器会下载JNLP文件,并使用Java Web Start服务来解析和执行。Java Web Start会自动处理JRE版本的匹配,如果系统中没有合适的Java运行环境,它会提示用户下载和安装。 ...
Java Web Start依赖于Java Network Launch Protocol (JNLP) 文件,这是一种XML格式的文件,包含了应用程序所需的类、库、资源以及安全策略等信息。JNLP文件由Web服务器提供,当用户点击链接时,Web浏览器会请求这个...
### 利用 Java Web Start 发布 Java 程序 #### JWS——Java Web Start 的功能与优势 Java Web Start(简称 JWS)是 Sun Microsystems(现 Oracle)为解决 Java 应用程序部署和更新问题而开发的一项技术。它是 JSR-...
当用户通过浏览器点击指向特殊格式的JNLP(Java Network Launching Protocol)执行文件链接时,会启动Java Web Start程序。随后,Java Web Start会自动从Web服务器下载应用程序所需的文件,缓存一部分,并启动描述中...
Java Web Start,也称为Java Network Launch Protocol(JNLP),是Oracle提供的一种技术,用于从Web上启动和自动更新Java应用程序。它允许用户通过一个Web链接启动富客户端Java应用程序,同时确保应用程序始终保持...
Java Web Start(JWS)是SUN公司推出的一项技术,用于通过Web来部署和发布Java应用程序,无论是Application还是Applet。这项技术在初次运行时会下载程序,之后的版本更新和维护都由JWS自动处理,极大地简化了客户端...
3. **打包JNLP文件**:JNLP(Java Network Launch Protocol)文件是Java Web Start应用的核心,它描述了应用程序的元数据,如主类、资源、权限等。博主会指导如何创建并配置JNLP文件,以便Java Web Start能够正确地...
该链接指向一个Java Network Launch Protocol (JNLP) 文件,该文件指示Java Web Start软件下载、缓存并运行应用程序。这种方式使得用户无需经历额外的安装步骤即可下载和启动应用程序。 Java Web Start软件作为Java...
JAVA WEB START(JNLP)是Java平台的一项技术,它允许用户通过Web浏览器方便地下载和运行Java应用程序。而OSWorkflow则是一个轻量级的工作流引擎,用于设计和实现复杂的业务流程。 首先,Liferay Portlet是Liferay...
"基于Java Web Start技术的VFP考试系统的设计与实现" 这篇文章主要介绍了基于Java Web Start技术的VFP考试系统的设计与实现。该系统应用了Java Web Start技术,包括考试、教师、教务三大模块,使得考试系统更加灵活...
Java Web Start(JWS)是SUN公司推出的一项技术,用于通过Web来部署和发布Java应用程序。这项技术在Java 1.4版本中被引入,它会在安装时自动安装,但在1.4之后的版本中,你需要手动找到安装路径下的`javaws.exe`来...
(1)本资源为Head First Java(第二版)的第17章chap17(本章在官网资源代码中没有这个代码,且书中描述模糊)为初学者打开门窗; (2)本资源根据书中例子,查询网上资料,自己总结,验证过可行,若不可行看自己搭建...
WebStart是Oracle公司(原Sun Microsystems)推出的一种基于Java的网络启动技术,它利用Java Network Launch Protocol (JNLP) 文件来启动和管理应用程序。WebStart的主要优点在于提供了一种便捷的方式,让用户通过...
【标题】:“WebStart解决方案”是一种技术,它允许用户通过Java Web Start技术从Web浏览器启动并运行基于Java的应用程序,无需进行复杂的安装过程。这项技术是Oracle在Java平台早期引入的,旨在提供一种便捷的方式...
JNLP(Java Network Launch Protocol)是Java Web Start的核心组件,是一个XML格式的文件,用于描述应用的元数据、依赖库、主类以及运行时的配置信息。这个"jnlp详细文档"可能是关于如何使用JNLP文件进行Java Web ...