JNLP使用.doc_第1页
JNLP使用.doc_第2页
JNLP使用.doc_第3页
JNLP使用.doc_第4页
JNLP使用.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JNLP使用JNLP是 JavaNetworkLaunchProtocol的简写,是一种用来在网络中部署应用程序的一种协议;在客户端只需要安装 javawebstart就可以使用服务器端的软件,它具有自动更新应用程序版本的功能;其实要部署一个jnlp程序也是很简单的,下面我们就来部署 一个简单的程序;要在服务器部署应用程序,一个最主要的就是编写一个部署文件,它是一种xml格式的文件,以jnlp为后缀;而你的应用程序就必须打包成 jar文件格式;假设你你现在有一个HelloJNLP.jar的文件,我们下面就来编写它的部署文件;新建文件HelloJNLP.jnlp文件,然后使用你喜欢的文件编辑器打开该文件,下面开始来编写该文件首先在文件中写如xml的版本和使用的编码,这行是可选的,不过在实际部署中最好还是写上这行;如下:然后以标记开始,在这里你要把你应用程序的地址写好,这个地址可以以本地文件目录,也可以是一个网络url,如下在中你可以写入在应用程序下载是显示的一些资料,如标题,描述,图标,程序的存放目录等HelloHelloJNLP还有一个可选的标记,它允许application在断网的情况下也能运行;在中你可以配置程序运行时的安全咨询,它可以是这个标记也可以不写;然后在中你可以配置jre的版本,程序相对codebase的路径假如你在打包jar文件的时候没有指定主类,那么你必须使用以下方法指定一个主类一个完整的jnlp文件是:HelloTechTipsSample!-我们下面将它部署到tomcat下,首先你需要在%CATALINA_HOME%conf/web.xml中添加一个mime-mapping:jnlpapplication/x-java-jnlp-file然后在%CATALINA_HOME%webapps下建个jnlp的文件夹,把HelloJNLP.jnlp和HelloJNLP.jar文件copy过去,然后在里面建个WEB-INF目录;然后你就可以通过http:/localhost:8080/jnlp/HelloJNLP.jnlp来运行程序了文件打包可以通过jdk中的jar,假如要将当前目录下所以文件打包到HelloJNLP.jar中,你可以在dos下输入:jar-cvfHelloJNLP.jar*.class你还可以通过keytool、jarsigner来为你的jar文件签名创建签字keytool-genkey-keystoremyKeys-aliasjdc为jar文件签字jarsigner-keystoremyKeysjarName.jarjdc使用脚本文件(jnlp)来发布Java程序 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/974126/214447发 布Java程序(桌面程序)最直接的方法就是将jar文件打包交给用户。不过有时jar文件很多,也很大。为了方便,sun提供了另外一种方式来通过网络 发布Java程序。这就是jnlp文件。可能很多读者曾经下载过很多jnlp文件,运行后会自动从指定的网站下载相应的文件。 实际上,jnlp文件就是一个xml格式的脚本文件。假设我们有一个test.jar文件需要安装(该文件是一个基于SWT的桌面程序),那么要使用jnlp文件发布test.jar需要如下几步:一、为test.jar文件签名 从网络上下载就意味着风险大大增加,因此,要想通过jnlp从网络上下载jar文件,并运行,就需要对该文件进行签名。如果不签名,java程序将运行在 sandbox中,也就是说无法访问本地资源,由于test.jar是swt程序,需要访问本地的dll(windows)或.so(linux)库,所 以必须要对test.jar进行文件签名。 签名需要一个证书,如果没有证书,可以使用如下的命令生成一个证书keytool-genkey-aliasnokiaguy-validity12345-keypassnokiaguypass-storepassnokiaguypass -keystorenokiaguy.keystore -dnameCN=nokiaguy,OU=nokiaguy,O=D,L=CA,S=CA,C=CN 在执行上面的命令后,会在当前目录下生成一个nokiaguy.keystore文件。然后将test.jar复制到当前目录下。现在当前目录有两个文件:nokiaguy.keystore和test.jar。最后使用如下的命令对test.jar签名:jarsigner-keystorenokiaguy.keystore-storepassnokiaguypass-keypassnokiaguypasstest.jarnokiaguy 在执行完上面的命令后,我们会发现test.jar文件的尺寸变大了。二、建立虚拟目录 下面就是在自己的机器上或服务器建立一个可访问的虚拟目录。本文使用了IIS建立一个虚拟目录,可通过00/key访问该目录,在该目录下只有一个test.jar文件(经过签名后的jar文件)。三、编写jnlp文件 在任意目录下建立一个test.jnlp文件,并输入如下内容: CustomSWT /vendor 其中根元素通过codebase指定了虚拟目录的url。通过元素指定了要下载的test.jar文件。 如果存在多个jar文件,可以有多个元素。元素的href属性指定要下载的jar文件,该文件路径是相对于 codebase属性值的。如果要考虑不同的操作系统,可以将多个元素,如下面的代码所示: 要注意,必须使课堂元素指定要运行的主窗口的类名(带包名),由于本文使用的test.jar文件中主窗口类没有名,类名为CustomMain,因此,只main-class属性值为CustomMain。 运行test.jnlp,一开始会显示如图1所示的欢迎界面。图1 然后会出现如图2所示的界面。图2 不过读者不要担心,这不是错误,而是说我们使用的证书并不是Sun支持的(而是我们自己生成的),因此,会出现这个证书提示(如果使用Sun支持的证书就 不会出现这个异常,但要花钱的哦!)。选中“始终信任此发行者的内容”复选框,单击“运行”按钮,就会下载test.jar文件,并运行程序。再次运行 test.jnlp文件,就会直接运行程序了(不会再出现图2的对话框)。 如果这时服务端更新的test.jar,test.jnlp会自动检测程序文件的更新时间,如果服务端程序更新,则会重新下载该程序,并运行。因此,使用 jnlp文件也可以实现实时更新程序的功能。有些象微软的smartclient。在更新服务端程序时,千万别忘了对程序进行签名啊,如果不签名,在运行 jnlp文件时就会出现如图3所示的异常信息。图3 实际上,jnlp文件默认情况下将test.jar文件下载到C:Documents and SettingsAdministratorApplication DataSunJavaDeploymentcache目录中。但文件名并不是test.jar,读者可以在该目录中查找所有的文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论