[javaws]jnlp介绍及使用

来源:互联网 发布:js test是什么 编辑:程序博客网 时间:2024/05/08 02:07
jnlp介绍及使用

1.jnlp是什么?是java提供的一种让你可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个 java应 用程序.好处就不用说了,如果你的java应用程序以jnlp 的方式发布,如果版本升级后,不需要再向所有用户发布版本,只需要更新服务器的版本,这就相当于让java应用程序有了web应用的优点了.

2.新建一个web应用程序,写一个测试类Test.java,把这个测试类打成一个jar包,命名为jnpl.jar,放入项目的根目录下面WebRoot

3.新建一个jnlp后缀的文件名称为testjnpl.jnlp,并放入到项目的根目录下面,
配置代码如下
<?xml version="1.0" encoding="UTF-8"?>
<!--此处的地址是jnlp访问的路径-->
<jnlp codebase="http://10.11.0.138:8080/JNPLTest/" name="SeatingChartBuilder"
   href="testjnpl.jnlp">
   <information>
        <title>Seating Chart Builder</title>
        <vendor>Etix.com, Inc.</vendor>
        <offline-allowed/>
<description>An Application To Seating Chart Builder!</description>
   </information>
   <application-desc main-class="com.Test"/>
   <security>
      <all-permissions/>
   </security>
   <resources>
        <j2se version="1.4+"/>
        <jar href="jnpl.jar" />
    </resources>
</jnlp>
4.为生成的jnlp.jar签名
(1)首先生成一个证书,命令如下,这个命令会在当前的目录下生成一个名称为myjnlp.keystore的文件
keytool -genkey -alias myjnlp -validity 123456 -keypass 123456 -storepass 123456 -keystore myjnlp.keystore -dname "CN=nokiaguy, OU=nokiaguy, O=D, L=CA, S=CA, C=CN"
(2)把生成的myjnlp.keystore放到项目的根目录下面,对jnpl.jar进行签名,并把签名后的jar文件放到项目根目录下面,这里的myjnlp就是生成证书时的别名myjnlp
jarsigner -keystore myjnlp.keystore -storepass 123456 -keypass 123456 jnpl.jar myjnlp

5.访问http://10.11.0.138:8080/JNPLTest/testjnpl.jnlp运行jnlp文件,成功!

总结:运行方式类似于:java -jar jarName.jar

 

需要注意的是,对于多个jar包,需要对每个jar包进行签名,且签名需要相同,如果多个jar包中有不同签名,会报“JNLP 文件中的 JAR 资源签名证书不一致”错误。

有时候调用别人签名过的jar包,即使重新签名,还会报上面的错误,原因在于在jar包的META-INF文件夹里有两个签名文件,需要把之前的签名文件删除。

 

 

原创粉丝点击