`
convolute
  • 浏览: 259234 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JNLP(Java Web Start )

阅读更多
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
分享到:
评论

相关推荐

    创建与部署Java Web Start的步骤

    (1)本资源为Head First Java(第二版)的第17章chap17(本章在官网资源代码中没有这个代码,且书中描述模糊)为初学者打开门窗; (2)本资源根据书中例子,查询网上资料,自己总结,验证过可行,若不可行看自己搭建...

    maven-webstart:使用 Maven 构建 Java Webstart 应用程序的模板

    不同的配置: 使用 JnlpDownloadServlet 使用自定义的 Jsp 作为 jnlp 而不使用 JnlpDownloadServlet 在 Swing 客户端 pom.xml 中运行 maven webstart 插件在 webapp pom.xml 中运行 maven webstart 插件Java Swing ...

    OpenWebStart:在Java 11发行后运行基于Web Start的应用程序

    OpenWebStart提供了一个用户友好的安装程序,可以在将来的Java版本中使用Web Start / JNLP功能,而无需依赖特定的Java供应商或发行版本。 该项目的第一个目标是针对Java 8 LTS版本,而对Java 11 LTS的支持将在不久...

    weasis-jnlp-distributions:带有 Applet 或 Java Web Start 的简单 Weasis 启动器示例

    带有 Applet 或 Java Web Start 的简单启动器 这个项目已经过时了! 请改用 。 这个项目是一个关于如何在不重建它的情况下覆盖默认包weasis.war的示例。 在 pom.xml 中,更改 &lt;properties&gt;&lt;weasis&gt; xxx 中的 ...

    JNLP-Builder:JNLP Builder 是一个 servlet,用于动态构建 JNLP 文件(Java Web Start)以从网页启动 Weasis

    构建 JNLP-Builder 要构建 jnlp-builder.war,请从根目录执行 Maven 命令: mvn clean package 然后将 jnlp-builder.war 放在一个 Servlet 容器(Tomcat、JBoss...)的 deploy 文件夹中 如何使用 JNLP-Builder ...

    OneWireViewer.jnlp

    OneWireViewer软件的java运行版本,ONEWIREVIEWER JAVA WEB入门,可以将OneWireViewer作为Java™Web Start程序安装在Java支持的操作系统上。

    UsingJavaWebStartInJDeveloper

    JDeveloper 支持基于 XML 的 JNLP (Java Network Launching Protocol) 定义,Java Web Start 技术是建立在 JNLP 基础之上的。在 JDeveloper 中用 Java Web Start Wizard 向导,你可以在 Web 服务器上配置并维护应用...

    worldwindjava源码-ga-worldwind-webstart:ga-worldwind-suite存储库中一些项目的JNLPwe

    webstart 预览应用程序 此存储库包含ga-worldwind-suite存储库中一些项目的 JNLP webstart 描述符。 单击以下链接预览应用程序: 从 Java 7 update 51 开始,Oracle 将安全策略更改为默认禁用自签名 webstart 应用...

    java7帮助文档

    Installed applications are not removed when the Java Web Start cache is cleared, but can be explicitly removed using the Java Control Panel. Java Web Start applications can be deployed without ...

    j2sdk-1_4_2_09-windows-i586-p.exe

    SAP XI 的Integration Directory(jnlp启动)需要的WebStart 1.4.2. You need to install Java WebStart 1.4.2.

    webrcp:用于RCP的Webstart

    WebRCP WebRCP是用于使用Java Web Start启动Eclipse RCP应用程序的框架。 WebRCP支持最常见的平台。特征下载并解压缩生成的RCP存档启动给定的Eclipse RCP产品文件入门将项目导入到Eclipse工作区中编写自己的属性文件...

    jnlp详细文档

    纯英文,但是比较简单。学习jws部署可以看看

    Ant Web Start Task-开源

    一个Ant任务,用于为Java Web Start(JNLP)应用程序生成WAR文件。 允许通过WAR文件轻松打包和分发Web Start应用程序。

    Hiero字体编辑器-Mac可用

    使用Java Web Start运行Hiero.jnlp文件 用法二:(Mac) 右键点击Hiero.jar文件,选择Open With...,再选择Jar Launcher,之后打开运行界面了。 注:网上说保存时图片颠倒的问题,多数是软件使用问题,这个就请...

    Java_EE_6规范中文版

    javaee 6 规范 chm版本 第1章 引言 1.1 感谢 1.2 版本1.3的感谢 1.3 版本1.4的感谢 ...13.1 JNLP(Java Web Start) 13.2 Java EE SPI 附录 附录A 早期版本的部署描述符 附录B 修订历史 科瑞网酷

    deskshare-public:使用 WebStart 进行桌面共享

    使用 Java WebStart 在 Windows、Linux 和 OSX 上共享桌面。 免责声明 这个项目主要分为两个部分,一个是 JNLP 应用程序,另一个是允许动态服务 JNLP 应用程序的 webapp; 各个部分拥有不同的版权。 BigMarker 在此...

    java snake简单code;

    java snake简单code;关于Web Start的JNLP Specification可以到sun网站http.doc )

    Java21Days_Exercises:学习Java的练习

    Java21Days_Exercises 学习了《 21... Swing库: -接口的基本组件, 布局-FlowLayout,BoxLayout,GridLayout,BorderLayout,CardLayout, -事件处理, -Graphics2D类, -Java Web Start(JNLP文件,SwingWorker类)。

    red5-screenshare:使用Red5 RTMPClient的开源屏幕共享Java应用程序

    此应用程序是Java Webstart应用程序,可以从网站运行而无需安装任何桌面软件,并且可以使用独立的RTMP客户端和屏幕视频编解码器将桌面屏幕作为RTMP视频流发布到Red5服务器。 它还包括一个Flex Viewer应用程序,可...

    Rachel - Resource Loading Toolkit-开源

    Rachel是Java Web Start / JNLP的开源资源加载工具包。 通过提供class://的URL处理程序和可嵌入的多线程超轻量级Web服务器,Rachel大大简化了Java Web Start / JNLP应用程序的资源加载。

Global site tag (gtag.js) - Google Analytics