jnlp的原理,文件程序代码和其部署和应用

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

<?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-class="jws.HelloWorld"/>

</jnlp>
三。应用JNLP部署应用
(1)编写相关应用,打包成一系列jar;
(2)根据jnlp文件说明修改相应的jnlp内容,修改相应的url和jar;
(3)部署jnlp文件和jar到相应的web容器;
(4)编写访问网页,即可使用该应用〔亦可下载jnlp文件使用jws运行应用〕;
四。补充
如果jar需要访问本地文件资源,需要为你的jar文件签名
先在命令行用keytool产生一个keystore文件.
keytool -genkey -keystore you.keystore –alias youApp
命令行用jarsigner签名,当然这时候需要生成keystore时的密码
jarsigner -keystore you.keystore appTest.jar youApp

重新部署即可第二种部署方法和解释

[b]三. 部署实例[/b]

下面我们就来部署一个简单的程序;要在服务器部署应用程序,一个最主要的就是编写一个部署文件,它是一种xml格式的文件,以jnlp为后缀;而你的应用程序就必须打包成jar文件格式;假设你你现在有一个HelloJNLP.jar的文件,我们下面就来编写它的部署文件; 新建文件HelloJNLP.jnlp文件,然后使用你喜欢的文件编辑器打开该文件。
下面开始来编写该文件首先在文件中写如xml的版本和使用的编码,这行是可选的,不过在实际部署中最好还是写上这行; 如下:
<?xml version="1.0" 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-class="HelloJNLP"/>

下面一个完整的jnlp文件是:

<?xml version="1.0" 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>

[b]四. tomcat 部署[/b]
我们下面将它部署到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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值