*设为首页
*加入收藏
热门关键字: JAVA
>>当前位置:Java大本营>Web Service>文章内容
用JNLP协议开发Java Web程序
作者: 发布时间:2008-01-09 10:01:40

JNLP协议使得应用软件一旦发布后自动更新和维护成为可能,对于下载后的软件,如果涉及到访问本地资源,就必须对相应的jar文件数字签名。以发布 NotePad.jar 为例,分步骤来说明application的签名和发布。
假使我们有一个NotePad的Java程序需要发布。


1)在源程序的src目录下运行dos,使用java自带的签名工具产生签名文件,按照提示一步步完成产生key。程序代码:

keytool -genkey -keystore notepadKeyFile -alias notepadKey
其中,notepadKeyFile是生成的文件名称, notepadKey是别名。可以查阅到相应的证书信息。


2)修改ant使用的build.xml文件,加入如下类似的一个task。程序代码:

   <target name="all" depends="dist" description="generate Key to sign jars">
        <signjar alias="notepadKey" storepass="hellojava" keypass="hellojava"
keystore="${src.dir}/notepadKeyFile" verbose="true" >
          <fileset dir="${dist.lib}">
            <include name="*.jar" />
          </fileset>
        </signjar>
    </target>
其中storepass和keypass就是在生成key的时候设置的keystore的密码和notepadKey的主密码,这里都设为hellojava,需要签名的class文件为${dist.lib}目录下的所有jar。

3)建立notepad.jnlp文件,它其实是个xml格式的发布文件。程序代码:

  
<?xml version="1.0" encoding="utf-8" ?>
<jnlp spec="1.0+" codebase="http://www.zigzagsoft.net/main/down" href="notepad.jnlp"> 
    <information>
        <title>NotePad V0.1</title>
        <vendor>www.ZigzagSoft.net</vendor>
        <description>NotePad V0.1</description>
        <description kind="tooltip">www.ZigzagSoft.net (FreeWare)</description>
        <offline-allowed/>
    </information>
    <security><!--权限设置-->
        <all-permissions/>
    </security>
    <resources>
        <j2se version="1.4+"/>
        <jar href="NotePad.jar"/>
    </resources>

    <application-desc main-class="net.drunkworm.project.notepad.NotePad"><!--主类-->
    </application-desc>
</jnlp>
4)然后到了正式发布的时候了,将notepad.jnlp和NotePad.jar放到网络服务器目录下即可。用户只要一次下载notepad.jnlp,以后的软件更新全部自动完成,你可以在Java Web Start的面板中看到NotePad的相关信息,用户每次运行NotePad,他自动会从源地址检查是否更新。


备注:

  客户端运行环境:Java Web Start,你可以编写一定的Javascript代码来判断客户端有没有安装JWS,提示用户安装。
点击运行实例: http://www.zigzagsoft.net/main/down/notepad.jnlp 图示为发布后用户下载时出现的界面


下载完成后将出现NotePad应用程序的界面。


·中文编码问题全面分析 (01-27)
·java web开发中的listener和filter (01-27)
·JAVA的由来 (01-27)
·一个Java Bean转换为HashMap及ArrayLis(01-27)
·探索下载引擎盈利模式 (01-27)
·web3.0感想 (01-23)
·工作流与PetriNet两种节点的新诠释 (01-21)
·过滤器(filter)在web 中的应用 (01-21)
·eclipse开发Web项目时虚拟目录的妙用 (01-21)
·Log4j入门(01-20)
·Weblogic保留jsp编译后的java文件 (01-20)
·Weblogic web service dynamic client (01-19)
复制地址发给您的好友: [推荐文章] [返回顶部] [关闭窗口]
版权所有 Java大本营 1999-2007 转载请注明出处