jnlp

JNLP的配置其实很简单的,被我搞复杂了,唉~老是麻烦我同事,我都有点不好意思了JNLP的简单配置 - chavez - 鬼闲人。我的运行环境是Tomcat,就先说Tomcat中如何配置吧。
 
在web.xml文件中加入
<mime-mapping>
    <extension>jnlp</extension>
    <mime-type>application/jnlp</mime-type>
</mime-mapping>
添加这这句话的作用是让Web Service不执行此类型的文件,允许下载此类型文件。
 
      在编写完Swing程序时,把它打包成Jar文件(别忘了打包时指定MainClass),然后再编写一个jnlp类型的文件,大致内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!--指定Jar文件所在的根目录,以及jnlp文件的路径-->
<jnlp codebase="http://localhost:8080/jnlp/" href="http://localhost:8080/jnlp/time.jnlp">
    <information>
        <!--这主要是填写一些描述信息-->
        <title>Hello</title>
        <vendor>Ghostloiterer</vendor>
        <description>This is my first JNLP Application</description>
    </information>
    <resources>
        <!--主要是写JDK的版本和Jar文件的名称-->
        <j2se version="1.2+"/>
        <jar href="JNLPTime.jar"/>
    </resources>
    <!--Jar文件入口类的名称-->
    <application-desc main-class="TheTime" />
</jnlp>
 
      当这些准备工作做完了,就把生成的Jar文件和jnlp文件一起拷贝到webapps目录下(我是直接放到ROOT文件夹的)。启动Tomcat,输入http://localhost:8080/jnlp,点击下载time.jnlp文件,把这个文件下载到本地,在本地运行time.jnlp,即可调用Web Service中的Jar文件,即实现了调用远程文件的功能。
 
      如果大家不明白我做的是什么,可以参考随JDK安装的那个Java Web Start程序,它就是用这种功能实现的远程调用Sun服务器中的应用程序。

今天在学习netbeans插件开发时,启动应用使用JWS,例:启动 NetBeans HTML Editor
想起公司的应用也使用了JNLP部署,所以查了一下资料,了解了一下JNLP和JWS的相关知识。
      一。jnlp是什么?是java提供的一种让你可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个java应 用程序.好处就不用说了,如果你的java应用程序以jnlp的方式发布,如果版本升级后,不需要再向所有用户发布版本,只需要更新服务器的版本,这就相当于让java应用程序有了web应用的优点了.
      二。jnlp文件的具体说明

<?xml version="1.0" encoding="UTF-8"?> dl.bitsCN.com网管软件下载

<!--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:供应商 so.bitsCN.com网管资料库任你搜

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

        打开的应用程序缓存查看器(Java Application Cache Viewer)中--> www.bitsCN.net中国网管博客

        <title>HelloWorld</title> 

        <vendor>Lively Corporation</vendor>

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

        <!--homepage :存放有关应用程序的相关文档的URL,如help文件等,仅仅是description作用--> bitsCN.com中国网管联盟

        <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/> 需要什么来搜一搜吧so.bitsCN.com

    </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"/> bitsCN.com中国网管联盟

</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

重新部署即可
 
阅读更多

没有更多推荐了,返回首页