分享
 
 
 

学用JavaWebStart

王朝java/jsp·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

传统情况下,通过网络发布软件需要用户在Web上查找和下载,然后在系统中存放并执行安装程序。执行安装程序后,将提示指定安装路径和安装选项,例如完全、典型或最小安装。这通常是一个耗时、复杂的任务,而且在安装软件的每个新版本时都必须重复进行此任务。

Java Web Start(JWS)是Sun公司推出的新的一种基于Java技术的应用程序发布技术。它是连接计算机和 Internet 的便捷通道,并且允许用户在完全脱离Web 的情况下运行和管理应用程序。JWS提供一次点击就激活应用程序的简易方法,并保证总是运行最新的版本,从而可消除复杂的安装或升级过程。JWS技术是一种面向Web的应用程序部署解决方案,使用JWS技术的好处如下:

1. 高效交互的用户界面,可与传统应用程序(如文字处理和电子表格软件)相媲美;

2. 较低的带宽需求,应用程序无须在每次单击时都与Web服务器进行连接,它可以缓存已经下载的信息,在低速连接上实现更好的交互;

3. JWS将下载的所有文件缓存在本地计算机上,支持脱机使用;

4. 在每次启动时,JWS将检查Web服务器是否有应用程序的更新版本,如果有将自动下载和启动。这样,应用程序将自动更新,没有复杂的升级过程。

JWS的实现

为了实现JWS软件发布、自动更新功能,需要在服务器端和客户端进行一些配置。其中客户端配置相对比较简单,只需要安装JWS客户端软件即可。该软件可以从http://java.sun.com/products/javawebstart下载安装。如果本机安装了JDK1.4,因其内部已经内置JWS,就不必另外下载了。

客户端正确安装JWS以后,就将基于Java网络加载协议(JNLP)从浏览器或者桌面加载应用程序。如果服务器端有更新版本的应用出现时, 客户端将自动下载最新的版本,并在本机缓存应用程序需要的类,以加速启动速度。无论是Application 还是Applet,应用程序都以安全的方式使用诸如文件系统这样的本机资源。

服务器端的配置相对复杂一些,它有几个关键点需要注意:

1.为了使Java程序(Application 或Applet)的Jar文件能被JWS执行,必须为Java程序创建一个网络语言协议(Java Networking Language Protocol,JNLP)文件。JNLP是一个为Java程序提供基本元素和描述的XML文件,它的后缀名为.jnlp。通过JNLP文件,Web服务器可以找到要发布的Jar文件和其在Web服务器上的存放位置,以及发布文件的一些说明。所以,正确编写JNLP是JWS配置的关键所在。JNLP语法比较简单,可以参考JWS说明文档。

2.因为Java程序需要从网上传输、下载和运行,所以分离的Class文件是很难保证传输的完整性,这样必须将Java应用程序或Applet打包,生成Jar文件,并放在Web服务器的相应目录下。

3.修改Web服务器配置,增加Web服务器的关联类型,使Web服务器能够识别和运行.jnlp文件。以Tomcat为例,找到TomcatHOME/conf下的web.xml文件,在其中添加application/x-java-jnlp-file ,Tomcat就可以支持JNLP文件了。

使用JBuiler6快速实现JWS

尽管JWS的应用有许多优点,但初学者刚刚接触时还是有一种无从下手的感觉。这时,可以使用JBuider 6的JWS相关功能,实现Java程序打包和自动生成.jnlp文件,然后对该文件进行修改,再安装在Web服务器上。以下为建立Login JWS的操作步骤:

1.在JBuilder 6下建立名字为Logconsole的项目,在该项目中加入一个名为Log的Applet,编译并运行,以保证logconsole.Log.class工作正常,这一步与编写普通Java程序完全一样,在此不再做进一步介绍。

2.使用Archive Builder工具将Class文件打包,步骤如下:

(1)在Jbuilder6工具栏中选择Wizard|Archive Builder,弹出“Archive Builder”5个步骤中的第一步―选择文档类型,按缺省设置选择“Basic”,点击“Next”。

(2)选择要建立的文档名及文件名,如图1所示。文档名设为Logconsole,文件名按缺省值即可。

3)在文档中加入所需的Class文件以及相关的类和资源文件。点击“Add classes”键,选择刚才生成的logconsole.Log.class,该Class文件名就会出现在“Required classes,packeges,resources:”文本框中,点击“Next”。

(4)选择类库的关联性,这是最容易出错的地方,如图2所示。一般在项目设置中,我们可能增加了许多类库,像图中的mysql驱动程序。因为本程序并不需要这些类库,所以一定要把它们设置为“不包括”,否则,最终生成的Jar文件会非常大

5)生成Jar文件的最后一步是设置清单(manifest)选项,注意一定要选上“建立一个清单”和“在文档中包含清单”这两项。点击“Finish”键,Jar文件的配置文件就生成了,然后点击“Project|Rebuilder Project”工具项,就可以最终生成Jar文件了。

3.使用JBuilder 6生成JNLP文件。

(1)在JBuilder6“File|new|Web”页面上选择“Web Start Launcher”,弹出窗口如图3所示,“Name”栏中输入“log”,“JAR file”中选择我们刚才生成的logconsole.jar,“Main class”中指定jar文件中的主类(程序入口),在本例子中只有一个类,就选择logconsole.Log,点击“Next”,进入下一步。

(2)如图4所示,主要是输入一些信息,它将会在客户平台启动JWS时显示出来。点击“Finish”,JBuilder 6就会自动生成log.jnlp文件了。

JWS 应用实例

笔者使用Java语言设计了一套网关型宽带网计费软件,分为服务器端和客户登录程序。服务器端的功能是根据应用客户登录程序发送过来的用户名、密码及客户端IP地址,来实现身份认证。如果认证成功,服务器开放客户端的IP地址,开始计费。在设计时,如何将登录程序既能安装在校园网近3000余台的电脑上,同时又能很方便地升级登录程序让笔者颇费脑筋。最终选用JWS技术顺利解决了此问题,并且取得了非常好的效果。具体步骤如下:

1. 在Login网页上提示用户下载并安装JWS 客户端软件。

2. 使用Java编写客户端登录程序(Applet),将所有.class文件打包并生成.jar文件。

3. 采用Tomcat作为Web服务器,在%TomcatHOME%/conf下的web.xml文件中添加 “ application/x-java-jnlp-file ”一行,使Tomcat支持JNLP文件。在%TomcatHOME%/webapps/proxy/WEB-INF/下的webapp.properties 文件中设置welcomefiles=log.jnlp,确保.jnlp文件作为缺省主页。

4.使用JBuiler6生成log.jnlp文件,将该文件安装在Tomcat的相应目录下,整个工作就完成了。log.jnlp内容如下:

log

NIT NetCenter

其中,.jnlp文件是JWS 配置中的关键。如果程序不能正常发布,绝大多数问题出在JNLP文件上。在本文实例log.jnlp中,最关键的语句用黑体标出,初学者可以在JBuilder 6的JNLP生成向导中有意调整几次,生成几个文件,并进行比较,就能够明白了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有