`
vking_wang
  • 浏览: 10545 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

什么是JNLP

 
阅读更多

一、JNLP介绍:

  在java开发的早期,重点被放在了客户端开发。语言中对于applet和安全下载的支持对于万维网(WWW)的发布看上去是个不错的主意。但是现实是java最大的成功在于服务器端,java的强大功能和适应性赢得了服务器端开发者的心。同时,客户端的开发落后了。棘手的开发问题限制了applet的效用,开发者被迫转向基于浏览器的瘦客户端。

  JavaNetwork Launching Protocol (JNLP,java网络加载协议) 承诺改变这个现状。通过JCP(Java Community Process)的JSR-56的开发, JNLP解决了很多先前用java开发针对客户端的功能的问题。一个JNLP客户端是一个应用程序或者说服务,它可以从宿主于网络的资源中加载应用程序。如果你使用JNLP打包一个应用程序,那么一个JNLP客户端能够:

  •   为该应用探测,安装并且使用正确版本的JRE(java运行时环境)
  •   从浏览器或者桌面加载应用程序
  •   当新版本的应用出现时自动下载最新的版本。
  •   为了加速启动速度在本机缓存应用程序需要的类
  •   可以作为applet或者应用程序运行
  •   在必要的情况下下载原始的库
  •   以安全的方式使用诸如文件系统这样的本机资源
  •   自动定位和加载外部依赖资源


二、JNLP文件的具体说明  

 

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

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

 <information>

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

  <!--title:应用程序标题;vendor:供应商。title/vendor元素必须,会显示在用"javaws-viewer"命令打开的应用程序缓存查看器(JavaApplication Cache Viewer)中-->
  <title>HelloWorld</title>
  <vendor>LivelyCorporation</vendor>
  <description>HelloWorldTest 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版本-->
  <j2seversion="1.5+"/>

  <!-- 指定要下载到本地的jar文件(注意,所有的文件都需要打包才能够下载),可以包含一些资源文件,如icons/configurationfiles,可以使用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

  重新部署即可


实例:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp codebase="http://127.0.0.1:8080/" spec="1.0+"> 
  <information>
    <title>IMPAX Agility</title>  
    <vendor>AGFA Healthcare</vendor>
    <homepage href="http://www.agfa.com"/> 
    <description>IMPAX Agility</description>
	<icon href="css/AgfaLogo_daylight.png" kind="splash"/>
  </information>
 
  <security>
    <all-permissions/>
  </security>

  <update check="background"/>
   
  <application-desc main-class="com.agfa.agility.netboot.Main">
  <argument>configurator.desktop</argument>
  </application-desc>
 
  <resources>
    <jar href="plugins/com.agfa.agility.netboot.jar" version="1.0.0.v20121226_1004"/>
 
	<property name="cluster.id" value="SHGW2094"/>
 
	<property name="netboot.lenientHostnameVerification" value="true"/>
	<property name="http.server.url" value="http://10.235.59.215:80"/>
	<property name="netboot.application" value="configurator.desktop"/>
	<property name="java.naming.provider.url" value="10.235.59.215:1100"/>
	<property name="netboot.downloadCertificate" value="true"/>
	<property name="netboot.disableCE" value="false"/>
	<property name="https.server.url" value="https://10.235.59.215:443"/>
	<property name="server.url" value="https://10.235.59.215:443"/>
	<property name="netboot.customCache" value="cache.dev"/>
	<property name="netboot.sendErrorReport" value="true"/>

 </resources>

  <resources os="Mac">
    <j2se java-vm-args="-XstartOnFirstThread" version="1.6"/>
  </resources>
  <resources os="Windows">
    <j2se version="1.6+"/>
  </resources>
  <resources os="Linux">
    <j2se version="1.6"/>
  </resources>
</jnlp>





分享到:
评论

相关推荐

    JNLP

    标题 "JNLP" 指的是 Java Network Launch Protocol,这是一种由Java平台提供的技术,用于在网络上启动和运行Java应用程序。JNLP是Java Web Start的一部分,允许用户在浏览器或者独立的桌面环境中无缝地下载、安装和...

    JNLP开发(JWS)

    ### JNLP开发(JWS):深入了解与实践 #### JNLP与Java WebStart:概念解析 JNLP(Java Network Launching Protocol),作为一项由Sun Microsystems在2000年提出的规范(JSR 56),为Java应用程序提供了一种通过...

    jnlp 新手开发把手教

    JNLP 新手开发把手教 JNLP(Java Network Launching Protocol)是一种通过网络部署和发布 Java 程序的新技术,它可以用来发布 Application,也可以用来发布 Applet。JNLP 的主要特点是安全、稳定、易维护、易使用。...

    jenkins-jnlp-slave镜像

    jenkins-jnlp-slave镜像

    jnlp详细文档

    这个"jnlp详细文档"可能是关于如何使用JNLP文件进行Java Web Start应用部署的指南。 在Java Web Start中,JNLP文件扮演着至关重要的角色。它提供了以下关键信息: 1. **应用元数据**:JNLP文件包含关于应用程序的...

    jnlp例子

    Java Web Start(JNLP,Java Network Launch Protocol)是Java平台提供的一种技术,用于在网络上启动基于Java的应用程序。它提供了一种安全、便捷的方式,让用户能够通过点击一个链接来下载和运行Java应用,无需手动...

    JNLP ant webstart sign genkey sample

    标题“JNLP ant webstart sign genkey sample”涉及到的是Java网络启动(Java Web Start,JWS)技术,以及如何使用Ant构建工具来签名JNLP应用。在Java Web Start中,JNLP(Java Network Launch Protocol)是用于启动...

    jnlp本地共享策略

    用jnlp开启一个服务,实现本地桌面远程共享

    1267342204836-integrated.jnlp

    java哪里都好用,不会就用jnlp来下载JAVA吧,就用它来下载,很不错的下载软件

    jenkins-jnlp.tar.gz

    https://blog.csdn.net/weixin_46560589/article/details/128801979 文章《【Kubernetes 企业项目实战】06、基于 Jenkins+K8s 构建 DevOps 自动化运维管理平台(中)》测试 jenkins 的 CI/CD 实验所需资料文件!

    Web程序中的JRE版本检测及JNLP文件的直接打开

    本文将深入探讨如何在Web环境中检测用户系统上的JRE版本,并通过Java Network Launch Protocol (JNLP)文件直接启动应用程序。 首先,我们要了解如何检测用户的JRE版本。这通常通过JavaScript实现,因为JavaScript...

    jfreechart-1.0.8-demo.jnlp

    标题 "jfreechart-1.0.8-demo.jnlp" 指示的是一个基于JFreeChart库的1.0.8版本的演示程序,其中可能包含了展示JFreeChart功能的各种图表示例。JFreeChart是一个开源Java库,用于创建高质量的、可定制的图表,包括...

    OneWireViewer.jnlp

    OneWireViewer软件的java运行版本,ONEWIREVIEWER JAVA WEB入门,可以将OneWireViewer作为Java™Web Start程序安装在Java支持的操作系统上。

    maven-jnlp-plugin-1.4.jar

    maven-jnlp-plugin-1.4.jar

    jviewer.jnlp

    java工具包jviewer

    jfreechart-1.0.11-demo.jnlp

    提供了使用jfreechar能完成的15大类的图,比如柱状图,饼图等。

    ant-jnlp-war_deps-0.9.jar.zip

    《Ant-JNLP-WAR_Deps-0.9.jar.zip:构建Java Web应用程序的利器》 在Java开发领域,Ant和JNLP是两个至关重要的工具,它们在构建和部署Web应用程序时起着核心作用。Ant是Apache软件基金会的一个项目,提供了一种基于...

    androidscreencast.jnlp

    https://xsavikx.github.io上的一个电脑操作手机并可以录屏的小工具,需要安装jdk

Global site tag (gtag.js) - Google Analytics