- 浏览: 266046 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
chenshi011:
无意中,看到LZ博客感觉多门语言都精通啊,尤其还做GIS啊,敢 ...
WorldWind学习笔记[一] -
supperman:
不能用~!
windows下Nginx启动、关闭、重启bat工具 -
join_lin:
攒。。
spket.config.xml -
awaterway:
可以用,多谢
IntelliJ IDEA 9.0 注册机/注册码/keygen/破解版 -
qq3553174:
你好,我刚刚接触仿真地图。请问如果要将世界风嵌入AIR程序中如 ...
WorldWind学习笔记[一]
一、什么是 Java Web Start?
Java Web Start(以下简称JWS)是一个软件技术,它的独特之处在于将您从关心客户机是如何启动的(从 Web 浏览器或是桌面)中解放出来。它包含了 applet 的可移植性、Servlet 和 JavaServer Pages (JSP)的可维护性以及象 XML 和 HTML 这样的标记语言的简易性。它是基于Java 的应用程序,允许从标准的 Web 服务器启动、部署和更新功能完全的 Java 2 客户机应用程序。在第一次启动 JWS 时,用户可以从 Web 下载新的客户机应用程序;之后这些应用程序可以通过 Web 页面的链接或(Windows 中的)桌面图标或“开始”菜单初始化。应用程序在 JWS 下快速初始化,被高速缓存在客户机,并且可以远程的离线启动。
二、用户观点的 JWS
JWS 不仅允许开发者开发可从 Web 页面启动和执行的应用程序(不只是 applet),还强调了无需任何用户交互就可以为现存的客户机代码提供透明更新的部署方案。
三、部署应用程序
第一步:开发你希望发布的应用程序
第二步:把应用程序及所用到的所有资源打成一个或多个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:D3: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文件
Java Network Launching Protocol (JNLP,java网络加载协议)
JNLP是JWS的核心配置文件,有了它,才能将以上各部分联系起来,真正让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不能运行,JNLP文件像普通XML文件一样显示在Browser里
解决办法:请修改tomcat里,发布程序的路径中的web.xml。
在其中添加<mime-type>
application/x-java-jnlp-file
</mime-type>
以支持JNLP文件。
问题二:不能下载资源或下载资源失败
解决办法:请卸载JWS的客户端,并将注册表里有关JWS的项目都删除,并确保program Files下的JWS目录已被删除,然后,重装JWS。
问题三:下载资源中有未签名文件
解决办法:
1:确保所有的jar包及其他资源都进行过签名。
2:确保整个资源中,没有中文的命名。好像签名工具不支持中文命名的文件名,所以未签到名。
3:察看已经签名的jar包中,meta-inf路径下的jwstest.sf(jwstest是你在进行签名时-alias后的命名)文件,他详细的列出了所有已签名的文件,以分析签名失败的原因。
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: Chen
您的组织单位名称是什么?
[Unknown]: RongWare
您的组织名称是什么?
[Unknown]: RW
您所在的城市或区域名称是什么?
[Unknown]: HangZhou
您所在的州或省份名称是什么?
[Unknown]: ZheJian
该单位的两字母国家代码是什么
[Unknown]: CN
CN=Chen, OU=RongWare, O=RW, L=HangZhou, ST=ZheJian, C=CN 正确吗?
[否]: Y
输入<jwsmytest>的主密码
(如果和 keystore 密码相同,按回车):
再次输入新密码:
C:\a>keytool -list -keystore mykey
输入keystore密码:
Keystore 类型: JKS
Keystore 提供者: SUN
您的 keystore 包含 1 输入
jwsmytest, 2009-11-27, PrivateKeyEnt
认证指纹 (MD5): A8:58:00:19:A8:D6:D7:93:1B:8A:CA:32:C4:F4:18:76
C:\a>jarsigner -keystore mykey s.jar jwsmytest
输入密钥库的口令短语:
输入 jwsmytest 的密钥口令:
警告:
签名者证书将在六个月内过期。
C:\a>
发表评论
-
Google Code personal maven repository
2012-12-28 11:59 1622Getting your jar of a library o ... -
IntelliJ IDEA 9.0 注册机/注册码/keygen/破解版
2010-07-30 16:57 2414IntelliJ IDEA 9.0 注册机/注册码/keyge ... -
C++
2010-03-19 16:26 17503D游戏源码下载区(目前国内最集中的游戏源码下载基地) htt ... -
editplus 使用大全
2010-03-09 20:02 1758edit plus v2.12 使用技巧集锦2007年04月2 ... -
Maven 常用 配置 pom.xml
2010-02-22 00:24 1095mvn archetype:create -DgroupId= ... -
3GG
2010-01-31 19:43 0WCDMA (欧洲3G标准 联通运营) <中国联通3G上 ... -
MD5
2010-01-24 00:20 2270本人搜集的所有深度和YLMF各系统版本的MD5值,方便大家找系 ... -
批量删除 .svn 文件
2010-01-18 19:07 2554使用SVN工具的时候会生成一些以“svn”作为后缀的文件,而且 ... -
web图形报表技术
2009-12-26 15:21 22201.JFreeChart最常用的web开 ... -
windows错误
2009-12-21 17:25 3896http://www.microsoft.com/chi ... -
网站测试工具
2009-11-29 21:28 1893网站一旦投入使用 ... -
中国佛学66句震撼世界的禅语
2009-11-27 16:51 11541.人之所以痛苦,在于追求错误的东西。 2.如果你不给自 ... -
GIS中的一些常见名词
2009-11-26 19:47 19401.等高线地形图 ... -
System.getProperty()参数大全
2009-11-26 17:30 1110System.getProperty()参数大全 ... -
Applet调用
2009-11-26 14:09 1352package cn.cjxo.applet; import ... -
js evel
2009-11-23 16:01 1442function abc(){ eval ( ... -
开发实用插件工具网址
2009-11-14 13:39 917Eclipse_SVN_plugin http: ... -
attachEvent和addEventListener 使用方法
2009-11-11 15:56 1682attachEvent方法,为某一事件附加其它的处理事件。(不 ... -
log4j详解
2009-11-11 13:10 848Log4j有三个主要的组件:Loggers(记 ... -
log4j常用配置
2009-11-11 11:44 1045常用log4j配置,一般可 ...
相关推荐
(1)本资源为Head First Java(第二版)的第17章chap17(本章在官网资源代码中没有这个代码,且书中描述模糊)为初学者打开门窗; (2)本资源根据书中例子,查询网上资料,自己总结,验证过可行,若不可行看自己搭建...
博文链接:https://cddcdd.iteye.com/blog/228985
OpenWebStart提供了一个用户友好的安装程序,可以在将来的Java版本中使用Web Start / JNLP功能,而无需依赖特定的Java供应商或发行版本。 该项目的第一个目标是针对Java 8 LTS版本,而对Java 11 LTS的支持将在不久...
不同的配置: 使用 JnlpDownloadServlet 使用自定义的 Jsp 作为 jnlp 而不使用 JnlpDownloadServlet 在 Swing 客户端 pom.xml 中运行 maven webstart 插件在 webapp pom.xml 中运行 maven webstart 插件Java Swing ...
带有 Applet 或 Java Web Start 的简单启动器 这个项目已经过时了! 请改用 。 这个项目是一个关于如何在不重建它的情况下覆盖默认包weasis.war的示例。 在 pom.xml 中,更改 <properties><weasis> xxx 中的 ...
构建 JNLP-Builder 要构建 jnlp-builder.war,请从根目录执行 Maven 命令: mvn clean package 然后将 jnlp-builder.war 放在一个 Servlet 容器(Tomcat、JBoss...)的 deploy 文件夹中 如何使用 JNLP-Builder ...
基于JNLP技术的客户端上传文件的实现,唐游,刘辰,本文介绍了JNLP技术及其应用背景,同时应用了java数字签名实现对客户端文件系统的访问,并生成相应的文件列表,实现了利用JNLP技术的
java信任SSL证书的工具类 忽略HTTPS请求的SSL证书,必须在openConnection之前调用
OneWireViewer软件的java运行版本,ONEWIREVIEWER JAVA WEB入门,可以将OneWireViewer作为Java™Web Start程序安装在Java支持的操作系统上。
java哪里都好用,不会就用jnlp来下载JAVA吧,就用它来下载,很不错的下载软件
JDeveloper 支持基于 XML 的 JNLP (Java Network Launching Protocol) 定义,Java Web Start 技术是建立在 JNLP 基础之上的。在 JDeveloper 中用 Java Web Start Wizard 向导,你可以在 Web 服务器上配置并维护应用...
This release contains Java API for XML Processing (JAXP) 1.4.5, supports Java Architecture for XML Binding (JAXB) 2.2.3, and supports Java API for XML Web Services (JAX-WS) 2.2.4. ...
Java多彩动画程序.jar (.html, .jnlp)
WebRCP WebRCP是用于使用Java Web Start启动Eclipse RCP应用程序的框架。 WebRCP支持最常见的平台。特征下载并解压缩生成的RCP存档启动给定的Eclipse RCP产品文件入门将项目导入到Eclipse工作区中编写自己的属性文件...
jnlp开发手把手教,特别适合新接触jnlp的开发着参考,根据步骤能够自己开发
jenkins-jnlp-slave镜像
webstart 预览应用程序 此存储库包含ga-worldwind-suite存储库中一些项目的 JNLP webstart 描述符。 单击以下链接预览应用程序: 从 Java 7 update 51 开始,Oracle 将安全策略更改为默认禁用自签名 webstart 应用...
使用Java Web Start运行Hiero.jnlp文件 用法二:(Mac) 右键点击Hiero.jar文件,选择Open With...,再选择Jar Launcher,之后打开运行界面了。 注:网上说保存时图片颠倒的问题,多数是软件使用问题,这个就请...
NULL 博文链接:https://cxlh.iteye.com/blog/745128
一个Ant任务,用于为Java Web Start(JNLP)应用程序生成WAR文件。 允许通过WAR文件轻松打包和分发Web Start应用程序。