读书人

jnlp的原理资料程序代码和其部署和应

发布时间: 2012-12-27 10:17:10 作者: rapoo

jnlp的原理,文件程序代码和其部署和应用
一.JNLP简介
JNLP是Java Network Launch Protocol的简写,是一种用来在网络中部署应用程序的一种协议;在客户端只需要安装java web start就可以使用服务器端的软件,它具有自动更新应用程序版本的功能;它是java提供的一种让你可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个 java应 用程序.好处就不用说了,如果你的java应用程序以jnlp 的方式发布,如果版本升级后,不需要再向所有用户发布版本,只需要更新服务器的版本,这就相当于让java应用程序有了web应用的优了
Jnlp还是一种基于xml的启动java程序的技术。在100town.com您可以将生成的代码存成一个后缀为**.jnlp的文件,将这个文件发布在自己的网站上,当用户访问这个网站时,就可以启动java程序。
二。jnlp文件的具体说明

<?xml version="1.0" encoding="UTF-8"?>

<!--codebase 属性指出搜索应用程序资源的顶级URL,下面的icon/jar元素都是以这个URL为基本.-->

<jnlp codebase="http://127.0.0.1:8081/webstart"> blog.bitsCN.com网管博客等你来搏

<information>

<!-- 在"开始"-"运行"菜单中输入"javaws"或"javaws -viewer"启动Web Start,会看到客户端已经安装的webstart应用程序-->

<!--title :应用程序标题 vendor:供应商

title/vendor 元素必须,会显示在用"javaws -viewer"命令

打开的应用程序缓存查看器(Java Application Cache Viewer)中--> <title>HelloWorld</title>

<vendor>Lively Corporation</vendor>

<description>HelloWorld Test Example for WebStart.</description>

<!--homepage :存放有关应用程序的相关文档的URL,如help文件等,仅仅是description作用-->

<homepage href="http://127.0.0.1:8081/webstart/index.html"/>


<!--icon 指定图标会显示在应用程序缓存查看器中,

在查看器中新建webstart快捷方式到桌面时也会显示为快捷方式图标,

只支持GIF/JPEG格式,其它格式无效-->


<icon href="./images/logo.jpg"/>


<!--splash 在sun的文档中提到会出现在webstart启动时的闪屏中,不过可能由于速度问题,我没有观察到-->


<icon kind="splash" href="./images/logo.jpg"/>

<!-- 允许离线启动,可以使用javaws -offline命令-->

<offline-allowed/>

</information>

<resources>

<!-- 指定客户端需要安装的j2se版本,下面指定为1.5+,

如果版本是1.4,在链接此jnlp文件时会提示更新j2se版本-->

<j2se version="1.5+"/>

<!-- 指定要下载到本地的jar文件(注意,所有的文件都需要打包才能够下载),

可以包含一些资源文件,如icons/configuration files,可以使用getResource方法取得-->

<jar href="./jar/jws/helloworld.jar"/>

</resources>

<!--application-desc 必须,指定webstart启动时执行jar文件中的哪个类-->

<application-desc main-encoding="UTF-8"?>
然后以<jnlp>标记开始,在这里你要把你应用程序的地址写好,这个地址可以以本地文件目录,也可以是一个网络url,如下:
<jnlp spec="1.0+" codebase="http://192.9.200.156:8080/jnlp" href="http://192.9.200.156:8080/jnlp/Hello.jnlp"><!-- codebase 也可以是file:///形式 -->
在<information>中你可以写入在应用程序下载是显示的一些资料,如标题,描述,图标,程序的存放目录等<information>
<title>Hello</title>
<vendor>HelloJNLP</vendor>
<homepage href=""/>
<icon href="HelloJNLP.jpg"/>
</information>还有一个可选的<offline-allowed/>标记,它允许application在断网的情况下也能运行;在<security>中你可以配置程序运行时的安全咨询,它可以是<j2ee-application-client-permissions/>
<all-permissions/> 这个标记也可以不写;

然后在<resources>中你可以配置jre的版本,程序相对codebase的路径
<resources>
<j2se version="1.5+"/>
<jar href="HelloJNLP.jar"/>
</resources>
假如你在打包jar文件的时候没有指定主类,那么你必须使用以下方法指定一个主类

<application-desc main-encoding="UTF-8"?>
<!-- file Hello.jnlp -->
<jnlp spec="1.0+"
codebase="http://192.9.200.156:8080/jnlp"
href="http://192.9.200.156:8080/jnlp/Hello.jnlp">
<information>
<title>Hello</title>
<vendor>Tech Tips Sample</vendor>
<homepage href=""/>
<icon href="HelloJNLP.jpg"/>
</information>
<!--
<offline-allowed/>
<security>
<j2ee-application-client-permissions/>
</security>
-->
<resources>
<j2se version="1.5+"/>
<jar href="HelloJNLP.jar"/>
</resources>
<application-desc main-class="HelloJNLP"/>
</jnlp>

四. tomcat 部署
我们下面将它部署到tomcat下,首先你需要在%CATALINA_HOME%conf/web.xml中添加一个
mime-mapping:<mime-mapping>
<extension>jnlp</extension>
<mime-type>application/x-java-jnlp-file</mime-type>
</mime-mapping>

然后在%CATALINA_HOME%\webapps下建个jnlp的文件夹,把HelloJNLP.jnlp和HelloJNLP.jar文件copy过去,然后在里面建个WEB-INF目录;然后你就可以通过http://localhost:8080/jnlp/HelloJNLP.jnlp来运行程序了。
文件打包可以通过jdk中的jar,假如要将当前目录下所以文件打包到HelloJNLP.jar中,你可以在dos下输入:jar -cvf HelloJNLP.jar *.class 。 你还可以通过keytool、jarsigner来为你的jar文件签名创建签字

keytool -genkey -keystore myKeys -alias jdc为jar文件签字
jarsigner -keystore myKeys jarName.jar jdc

读书人网 >编程

热点推荐