用户名
UID
Email
自动登录
找回密码
密码
登录
注册
只需一步,快速开始
快捷导航
门户
论坛
BBS
空间
索引树
手机版
读书
文库
竞拍
Auction
商店
排行榜
Ranklist
版主团
十周年专题
Oracle索引树
DB2索引树
MS Sql Sever索引树
Mysql索引树
Sybase索引树
BI索引树
项目管理索引树
Java索引树
搜索
搜索
热搜:
ITPUB索引树
ITPUB十周年
Oracle
性能优化
本版
帖子
用户
ITPUB论坛
›
论坛
›
≡ 开发技术 ≡
›
Java入门与认证版
›
轻松玩转Java Web Start
返回列表
更多
查看:
2030
|
回复:
0
轻松玩转Java Web Start
[复制链接]
四紫
四紫
当前离线
UID
7600584
阅读权限
20
帖子
201
精华贴数
0
技术排名
2071
技术积分
1244
社区排名
1068846
社区积分
0
注册时间
2006-7-15
IP卡
狗仔卡
注册会员
中级会员
精华贴数
0
技术积分
1244
社区积分
0
注册时间
2006-7-15
论坛徽章:
0
加好友
发消息
发表于 2006-7-20 13:14:19
|
显示全部楼层
Java Web Start(以下简称JWS)是SUN提供的一种通过Web来部署和发布Java 程序的新技术,它既可以用来发布Application,也可以用来发布Applet,它获去年全球Java技术最佳创意奖。它仅在第一次运行时下载程序,以后的事情,就全全交给JWS,包括版本的自动更新和维护。这是我们曾经梦寐以求的事情,程序运行在客户端(本地运行,当然有足够的速度),但不用去安装配置客户端,也不用去考虑版本升级后对客户端的维护,这就是JWS提供给我们的好处之一。OK,下面我们就来看看如何玩转JWS,本文仅用发布Application来做说明。
系统环境:Win2000Professional+Tomcat3.2.1+JDK1.3。
一:JWS简介
JWS主要用来通过网络部署你的应用程序,它具有安全、稳定、易维护、易使用的特点。用户访问用JWS部署应用程序的站点,下载发布的应用程序,既可以在线运行,也可以通过JWS的客户端离线运行已下载的应用程序。对同一个应用程序,在第一次运行时下载,以后每次运行时,JWS的客户端会自动去探测是否有版本更新,有更新就自动下载新版本,没有更新就直接运行本地当前版本,所有的麻烦全由JWS去承担。好,下面我们就一步一步来搭建JWS
二:搭建支持JWS的Web站点
第一步:你的Tomcat3.2.1已经正常运转
第二步:找到TomcatHOME/conf下的web.xml文件,在其中添加<mime-type>
application/x-java-jnlp-file
</mime-type>
以支持JNLP文件。
三:部署应用程序
第一步:开发你希望发布的应用程序
第二步:把应用程序及所用到的所有资源打成一个或多个jar包
第三步:如果你的应用程序不会用到任何运行这个应用程序的机器的本地资源,那么,你的应用程序就可以部署了。
第四步:如果你的应用程序用到了运行这个应用程序的机器的本地资源,那么,你的应用程序就必须先签名然后才可以发布。
第五步:如何给应用程序签名
1:首先确保你已经完全安装了Java2的环境,有keytool工具,它位于J2SE SDk的bin目录下。这一般不会有问题。
2:到Dos状态下,进入你需发布应用程序的jar包所在的目录,运行下面这句话
keytool -genkey -keystore myKeystore -alias jwstest
它将会提示你输入用户名、密码等,不用理它,按照提示随便输入即可,但一定要记住密码。运行结束它将会在当前路径下创建名为myKeystore的文件。
3:如果你想察看一下刚才生成的myKeystore文件的内容,可以使用下面这句话:
keytool -list -keystore myKeystore
显示出来应该类似如下:
Keystore type: jks
Keystore provider: SUN
Your keystore contains 1 entry:
jwstest, Tue Nov 23 19:29:32 PST 2001, keyEntry,
Certificate fingerprint (Test):
C3:A9:CD:F3
3:AC:4D:3F:3C:5B:AF:9E:CF:0D:46:5C
4:对你需发布应用程序的jar包进行签名,运行下面这句话:
jarsigner -keystore myKeystore yourtest.jar jwstest
其中yourtest.jar是你的jar包名,你需要修改它,别的就不必修改了。运行时会提示你输入密码,就是你刚才在生成myKeystore文件时设定的密码。
第六步:部署应用程序的jar包。
1:在Tomcat的webapps中新建目录JWSTest
2:在JWSTest下新建目录apps,META-INF,WEB-INF
3:在apps下新建目录images和lib
4:在META-INF中拷入MANIFEST.MF
5:在WEB-INF中拷入web.xml
6:把已经准备好的jar包拷入lib目录下
四:Jsp页面
第一步:编写用于Web访问的页面index.jsp如下:
<%@page contentType="text/html;charset=gb2312"%>
<html>
<title>JWS Test</title>
<head>
<SCRIPT LANGUAGE="Javascript">
function insertLink(url, name) {
document.write("<a href=" + url + ">" + name + "</a><br><br>"
;
}
insertLink("http://你的IP:8080/ JWSTest /apps/JWSTest.jnlp"," JWSTest "
;
</SCRIPT>
</head>
<body>
</body>
</html>
第二步:在jsp中添加检测访问的客户端是否已经安装了JWS的客户端的代码,示例如下:
<%@page contentType="text/html;charset=gb2312"%>
<html>
<title> JWS Test </title>
<head>
<SCRIPT LANGUAGE="Javascript">
var javawsInstalled = 0;
isIE = "false";
if (navigator.mimeTypes && navigator.mimeTypes.length) {
x = navigator.mimeTypes['application/x-java-jnlp-file'];
if (x) javawsInstalled = 1;
} else {
isIE = "true";
}
function insertLink(url, name) {
if (javawsInstalled) {
document.write("<a href=" + url + ">" + name + "</a><br><br>"
;
} else {
document.write("<a href=" + url + ">"+ name +"</a><br><br>"
;
}
}
</SCRIPT>
<SCRIPT LANGUAGE="VBScript">
on error resume next
If isIE = "true" Then
If Not(IsObject(CreateObject("JavaWebStart.IsInstalled"
)) Then
javawsInstalled = 0
Else
javawsInstalled = 1
End If
End If
</SCRIPT>
<SCRIPT LANGUAGE="Javascript">
if(javawsInstalled){
insertLink("http://你的IP:8080/ JWSTest /apps/JWSTest.jnlp"," JWSTest "
;
}else{
//通知用户要先安装JWS的客户端,你可以自己提供下载或是直接链接到Sun的JWS下载。
//分为两种,如果客户端已经安装了Java运行环境,则只要下载javaws-1_0_1_01-win-int.exe即可。
//如果客户端没有安装Java运行环境,则要下载完整的javaws-1_0_1_01-win-int-rt.exe。
}
</SCRIPT>
</head>
<body>
</body>
</html>
五:JNLP文件
第一步:下面我们来编写JWS的核心配置文件JNLP,有了它,才能将以上各部分联系起来,真正让JWS运转起来。JNLP文件符合标准的XML语法,实质就是一个XML文件。当然,编写它的最好方式是对已写好的JNLP进行改写。JWSTest.jnlp示例如下:
<?xml version="1.0" encoding="utf-8"?>
<!-- JNLP File for SwingSet2 Demo Application -->
<jnlp
spec="1.0+"
codebase="http://你的IP:8080/JWSTest/apps"
href=" JWSTest.jnlp">
<information>
<title> JWS Test </title>
<vendor>YOUR Name</vendor>
<homepage href=" JWSTest.html"/>
<description> JWS Test </description>
<icon href="images/ JWSTest.jpg"/>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.3"/>
<jar href="lib/ JWSTest.jar"/>
</resources>
<application-desc main-class="运行启动的主类"/>
</jnlp>
第二步:部分JNLP的关键语法
<jnlp>元素
spec:必须是1.0及以上版本,这里用1.0+,不需修改。
codebase:资源的URL,是JNLP指向各连接的起始处,需自行修改。
Href:JNLP文件相对codebase的存放位置,和JNLP文件的全名,需自行修改。
<infomation>元素
Title:发布的应用程序简单标题,需自行修改。
Vendor:发行商信息,可以写上你的大名,需自行修改。
Homepage:存放有关应用程序的相关文档的URL,如help文件等,可有可无。
Description:对应用程序的描述,可以有多对<description></description>,可有可无。
Icon:用户下载你的应用程序后,在JWS里显示的图标的URL,应是gif或jpeg格式。需自行修改。
Offline-allowed:选择项,允许用户离线运行应用程序,一般都会有,不用修改。
<security>元素
选择项,如果没有指明<security>,默认是不允许应用程序访问用户的本地资源,即应用程序是沙箱运行。
如果设定为<all-permissions/>,则表示允许应用程序访问用户的本地资源。一般都会设定此值。
<resource>元素
<j2se version = 指定jdk版本>
<jar href = 指定需发布的应用程序的jar包存放的位置>
<application-desc>元素
main-class:应用程序运行启动的主类
<argument>:应用程序运行时的参数,可以有多个,每一个参数用一对<argument>参数</argument>。
至此,你已经完全构建了运转JWS的各部件。
六:完整发布和测试
前面我们已经准备好了需发布的应用程序的jar包,也写好了用来访问的jsp文件和服务器端的核心jnlp文件。
第一步:在JWSTest下新建目录jsp。把index.jsp拷入jsp目录。
第二步:把jnlp文件直接拷入apps目录下。
第三步:在浏览器里输入:
http://localhost:8080/JWSTest/jsp/index.jsp
即可访问到jsp页面。页面应出现JWSTest字样。
第四步:点击JWSTest,连接到apps下的JWSTest.jnlp文件,JWS启动,开始下载你发布的应用程序。
第五步:下载完毕,直接运行即可。以后,你也可以直接运行JWS客户端里已下载的应用程序。
不出意外,应恭喜你已经开始享受JWS带来的乐趣了。
七:常见问题
通过上面的讲述,你一定能体会到JWS的易用性。或许事情并没有那么简单,以我的使用经验,还会有许多问题出现,在这里挑几个经常出现的问题,给出相应解决方法,让大家少走弯路,而享受更多的乐趣。
问题一:JWS不能运行,JNLP文件像普通XML文件一样显示在Browser里
解决办法:请修改tomcat里,发布程序的路径中的web.xml。
在其中添加<mime-type>
application/x-java-jnlp-file
</mime-type>
以支持JNLP文件。
问题二:不能下载资源或下载资源失败
解决办法:请卸载JWS的客户端,并将注册表里有关JWS的项目都删除,并确保program Files下的Java Web Start目录已被删除,然后,重装JWS。
问题三:下载资源中有未签名文件
解决办法:1:确保所有的jar包及其他资源都进行过签名。
2:确保整个资源中,没有中文的命名。好像签名工具不支持中文命名的文件名,所以未签到名。这可让我郁闷了一下午哦。
3:察看已经签名的jar包中,meta-inf路径下的jwstest.sf(jwstest是你在进行签名时-alias后的命名)文件,他详细的列出了所有已签名的文件,以分析签名失败的原因。
使用道具
举报
提升卡
置顶卡
变色卡
显身卡
相关内容推荐
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
发表回复
回帖后跳转到最后一页
浏览过的版块
MS SQL Server
Oracle数据库管理
Linux及其应用 【已迁移到IXPUB】
项目管理
供应链
Oracle专题深入讨论
Java企业开发
Oracle新技术/11gR2
Java web开发及框架技术
ERP产品与实践
旅游,驴友
IBM信息管理
企业管理咨询
ITPUB地面活动专版
Oracle入门与认证
Oracle电子文档
SAP R/3
Lotus
Visual C#
TOP
技术积分榜
社区积分榜
徽章
电子杂志
团队
统计
邮箱
虎吧
老博客
文本模式
帮助
ITPUB首页
|
ITPUB论坛
|
数据库技术
|
企业信息化
|
开发技术
|
微软技术
|
软件工程与项目管理
|
IBM技术园地
|
行业纵向讨论
|
IT招聘
|
IT文档
|
IT博客
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有
联系我们
网站律师
隐私政策
知识产权声明
京ICP证:060528号
北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
积分 0, 距离下一级还需 积分
回顶部
≡ 数据库技术 ≡
Oracle数据库管理
Oracle高可用
Oracle开发
Oracle入门与认证
Oracle专题深入讨论
Oracle新技术/11gR2
Oracle电子文档
Oracle Fusion中间件
IBM DB2数据库管理与开发
MS SQL Server
Sybase管理与开发
MySQL及其它开源数据库
国内数据库产品
NoSQL
内存数据库
列式数据库
数据仓库与数据挖掘
移动及嵌入式数据库
Hadoop与分布式数据处理
≡ 企业信息化 ≡
ERP产品与实践
CRM产品与实践
HR产品与实践
PLM/PDM产品与实践
云计算和SaaS产品与实践
物流
供应链
供应链建模与仿真
物流设备与系统工程
企业管理咨询
管理协同与办公自动化
IT服务管理
数据中心建设与设备采购
ERP二次开发
Oracle ERP
Oracle EBS R12
PeopleSoft与JDE
EBS相关文档
Oracle EBS DBA
SAP R/3
SAP Business One开发与快速实施
SAP财务及CRM
SAP后勤及HR
mySAP ERP
系统开发及跨应用设置
SAP相关文档
国外其它ERP产品
国内ERP产品
≡ 开发技术 ≡
Java入门与认证版
Java web开发及框架技术
Java企业开发
WEB程序开发
WEB 2.0技术
动态语言
移动与游戏开发
≡ 微软技术 ≡
微软产品用户交流区
.Net人才交流
.Net电子书籍&&书籍介绍
开发工具和语言
.NET Framework 相关
Visual Basic/VB.net
Visual C#
Visual C++/vc.net
Visual Studio
.NET软件架构与模式
.NET开发辅助工具及框架
Web开发
ASP.NET与AJAX
Web相关技术讨论(IIS等)
Silverlight 技术
微软企业级产品技术
Exchange Server
windows server
SQL Server
SharePoint
Biztalk
嵌入式及移动开发
Windows Embedded 嵌入式技术
Windows 移动设备
Office开发
Microsoft office system
Office Business Application
≡ 软件工程与项目管理 ≡
系统设计与建模
数据建模
项目管理
项目管理文档资源
PMP认证
项目过程
软件测试
算法讨论与研究
≡ IBM软件技术园地 ≡
IBM信息管理
Lotus
Mashup技术
Tivoli
Websphere
Rational
Jazz大赛专区
与SOA相关的IBM产品与技术
IBM蓝色之路
IBM软件技术精英协会
软件技术精英活动专版
≡ 操作系统与硬件 ≡
≡ 行业纵向讨论区 ≡
IT业界评论与展望
政府与教育事业
中国政府信息主管联盟
电信行业
金融行业
医卫行业
制造行业
电力行业
信息安全与审计
≡ 会员交流 ≡
IT职业生涯
招聘求职商务信息
投资理财
体育世界
体育博彩专版
汽车世界
旅游,驴友
外语角
数码摄影
电子图书与IT文档资料
软件交流
软件交流精华区
≡ ITPUB产品与服务 ≡
ITPUB地面活动专版
BLOG天地
授权用户区
站务管理