- 浏览: 657232 次
- 性别:
- 来自: 成都
-
文章分类
- 全部博客 (170)
- Android (10)
- Java (35)
- PHP (3)
- Linux (3)
- Powerdesigner (2)
- dedcms (1)
- nginx (1)
- Flex (9)
- REST (2)
- Google App Engine (1)
- mysql (6)
- JAVA开源项目 (1)
- Eclipse (18)
- Eclipse Orion (1)
- Dojo (2)
- UML (1)
- Eclipse GEF EMF (4)
- Eclipse 插件开发 (6)
- OSGI (2)
- DeDeCMS (1)
- Maqetta (2)
- JavaScript (1)
- nginx php (1)
- Dojo V1.7 (2)
- Spring3 (4)
- Hibernate3 (4)
- MongoDB (3)
- Scala (2)
- DSL (1)
- Python (3)
- Maven (1)
- Tomcat (3)
- XMPP (2)
- Apache (4)
- NodeJS (1)
- SQLSERVER (2)
- HTML5 (1)
- Nexus (1)
- web服务器 (2)
- Jetty (2)
- weixin (1)
- ngrok (1)
- 网络与信息安全 (1)
最新评论
-
wangyudong:
配置有点晕,开源社区上找了一个开源的Holer,只需要设置Ac ...
用ngrok实现外网访问本地WEB项目的方法 -
lolo968:
你收集的资料没有链接
基于OSGI的框架开发小结(转) -
smartdog:
使用的maven的版本很老的,而且写的不是很清楚,建议可以参考 ...
Maven多项目依赖配置 -
Tom.X:
OSGi联盟官网:http://osgia.com
基于OSGI的框架开发小结(转) -
Miller003:
你好,我在本地测试时,删除catalina.jar和tomca ...
基于Tomcat7的HTML5 WebSocket 应用示例
一. 什么是 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包所在的目录,运行下面这句话 它将会提示你输入用户名、密码等,不用理它,按照提示随便输入即可,但一定要记住密码。运行结束它将会在当前路径下创建名为myKeystore的文件。 3:如果你想察看一下刚才生成的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包进行签名,运行下面这句话: 其中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文件 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>元素 <infomation>元素 Title:发布的应用程序简单标题,需自行修改。 <security>元素 <resource>元素 <application-desc>元素 <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> 问题二:不能下载资源或下载资源失败 解决办法:请卸载JWS的客户端,并将注册表里有关JWS的项目都删除,并确保program Files下的JWS目录已被删除,然后,重装JWS。 问题三:下载资源中有未签名文件 解决办法: 1:确保所有的jar包及其他资源都进行过签名。 2:确保整个资源中,没有中文的命名。好像签名工具不支持中文命名的文件名,所以未签到名。 3:察看已经签名的jar包中,meta-inf路径下的jwstest.sf(jwstest是你在进行签名时-alias后的命名)文件,他详细的列出了所有已签名的文件,以分析签名失败的原因。
keytool -genkey -keystore myKeystore -alias jwstest
keytool -list -keystore myKeystore
jarsigner -keystore myKeystore yourtest.jar jwstest
spec:必须是1.0及以上版本,这里用1.0+,不需修改。
codebase:资源的URL,是JNLP指向各连接的起始处,需自行修改。
Href:JNLP文件相对codebase的存放位置,和JNLP文件的全名,需自行修改。
Vendor:发行商信息,可以写上你的大名,需自行修改。
Homepage:存放有关应用程序的相关文档的URL,如help文件等,可有可无。
Description:对应用程序的描述,可以有多对<description></description>,可有可无。
Icon:用户下载你的应用程序后,在JWS里显示的图标的URL,应是gif或jpeg格式。需自行修改。
Offline-allowed:选择项,允许用户离线运行应用程序,一般都会有,不用修改。
选择项,如果没有指明<security>,默认是不允许应用程序访问用户的本地资源,即应用程序是沙箱运行。
如果设定为<all-permissions/>,则表示允许应用程序访问用户的本地资源。一般都会设定此值。
<j2se version = 指定jdk版本>
<jar href = 指定需发布的应用程序的jar包存放的位置>
main-class:应用程序运行启动的主类
application/x-java-jnlp-file
</mime-type>
以支持JNLP文件。
发表评论
-
JVM系列三:JVM参数设置、分析(转)
2014-09-28 15:04 1088不管是YGC还是Full GC,GC过程中都会对导致程序运 ... -
Java中static、final用法小结 (转)
2012-08-26 10:51 1985一、final 1.final变量: ... -
java位操作符总结(转)
2012-08-17 11:16 1289以下是java位操作符的小总结,具体如下:二进制负数以它 ... -
Servlet生命周期与工作原理(转)
2012-08-14 16:57 1059Servlet生命周期与工作原理 Servle ... -
java堆与栈 java String分配内存空间(详解)转
2012-08-10 15:44 1294栈内存 堆内存 ... -
java类继承总结一 父类类型与子类类型之间的转化问题(转)
2012-08-06 21:13 8687java类继承总结一 父类类型与子类类型之间的转化问 ... -
java堆和栈小结(转)
2012-08-05 21:45 1060(1)JAVA中基本数据类型直 ... -
Java常见异常(Runtime Exception )小结--转
2012-08-02 21:04 1344Java常见异常(Runtime Exception ) ... -
java.lang.NoClassDefFoundError: org.objectweb.asm.Type
2012-06-03 15:27 2478在使用spring3的aop时,出现如下的错误: ja ... -
Bean named '*' must be of type [*], but was actually of type [$Proxy16]
2012-06-03 14:14 28384在用junit测试dao接口时,出现以下的错误 Caused ... -
saveOrUpdate is not valid without active transaction
2012-06-03 13:07 6879在使用Spring+Hibernate的框架时,在applic ... -
spring BeanCreationException confusion about mapping
2012-05-31 20:08 1385在进行spring3+rest配置时,出现了以下的错误: C ... -
如何获取新浪微博的登录参数
2012-05-23 20:32 77311、用Chrome的开发者工具或者Firefox的Firebu ... -
Java 程序中使用相对和绝对路径读取文件
2012-05-21 14:24 9164在Java中用File对象来创建文件时,绝对路径一般是不会出现 ... -
线程安全与线程不安全
2012-04-26 16:43 1229线程安全是针对多线程来讲的,如果所使用的公用变量在多线程 ... -
StringBuilder、StringBuffer和String的关系
2012-04-26 16:33 10161. String 类 S ... -
插件开发中如何正确使用第三方jar包
2012-04-21 20:48 2481在进行eclipse插件开发过程中,除了引用Eclipse本身 ... -
Errors running builder 'JavaScript Validator' on project '......'.
2012-04-21 20:36 31335在编译java工程时,如果出现 “Errors occu ... -
The method *** of type *** must override a superclass method
2012-04-21 20:34 1363如果在实现接口时,出现了“The metho *** o ... -
Java 1.6动态编译器 null问题
2012-03-16 10:45 15681、在java程序中用JavaCompiler compile ...
相关推荐
当用户点击一个支持Java Web Start的链接时,浏览器会下载JNLP文件,并使用Java Web Start服务来解析和执行。Java Web Start会自动处理JRE版本的匹配,如果系统中没有合适的Java运行环境,它会提示用户下载和安装。 ...
Java Web Start的工作原理基于“点击即运行”(Click-and-Run)的概念,它通过网络下载Java应用程序,并自动管理应用程序的更新。当用户点击一个链接时,Java Web Start会检测用户的系统是否已经安装了必要的Java...
标题“JNLP ant webstart sign genkey sample”涉及到的是Java网络启动(Java Web Start,JWS)技术,以及如何使用Ant构建工具来签名JNLP应用。在Java Web Start中,JNLP(Java Network Launch Protocol)是用于启动...
### 利用 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技术的VFP考试系统的设计与实现" 这篇文章主要介绍了基于Java Web Start技术的VFP考试系统的设计与实现。该系统应用了Java Web Start技术,包括考试、教师、教务三大模块,使得考试系统更加灵活...
JAVA WEB START(JNLP)是Java平台的一项技术,它允许用户通过Web浏览器方便地下载和运行Java应用程序。而OSWorkflow则是一个轻量级的工作流引擎,用于设计和实现复杂的业务流程。 首先,Liferay Portlet是Liferay...
Java Web Start(JWS)是SUN公司推出的一项技术,用于通过Web来部署和发布Java应用程序。这项技术在Java 1.4版本中被引入,它会在安装时自动安装,但在1.4之后的版本中,你需要手动找到安装路径下的`javaws.exe`来...
JNLP是Java Web Start的一部分,允许用户在浏览器或者独立的桌面环境中无缝地下载、安装和运行Java应用程序,而无需进行复杂的安装过程。 **Java Network Launch Protocol (JNLP) 知识点详解:** 1. **JNLP 文件...
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 ...
(1)本资源为Head First Java(第二版)的第17章chap17(本章在官网资源代码中没有这个代码,且书中描述模糊)为初学者打开门窗; (2)本资源根据书中例子,查询网上资料,自己总结,验证过可行,若不可行看自己搭建...