一、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" 指的是 Java Network Launch Protocol,这是一种由Java平台提供的技术,用于在网络上启动和运行Java应用程序。JNLP是Java Web Start的一部分,允许用户在浏览器或者独立的桌面环境中无缝地下载、安装和...
### JNLP开发(JWS):深入了解与实践 #### JNLP与Java WebStart:概念解析 JNLP(Java Network Launching Protocol),作为一项由Sun Microsystems在2000年提出的规范(JSR 56),为Java应用程序提供了一种通过...
JNLP 新手开发把手教 JNLP(Java Network Launching Protocol)是一种通过网络部署和发布 Java 程序的新技术,它可以用来发布 Application,也可以用来发布 Applet。JNLP 的主要特点是安全、稳定、易维护、易使用。...
jenkins-jnlp-slave镜像
这个"jnlp详细文档"可能是关于如何使用JNLP文件进行Java Web Start应用部署的指南。 在Java Web Start中,JNLP文件扮演着至关重要的角色。它提供了以下关键信息: 1. **应用元数据**:JNLP文件包含关于应用程序的...
Java Web Start(JNLP,Java Network Launch Protocol)是Java平台提供的一种技术,用于在网络上启动基于Java的应用程序。它提供了一种安全、便捷的方式,让用户能够通过点击一个链接来下载和运行Java应用,无需手动...
标题“JNLP ant webstart sign genkey sample”涉及到的是Java网络启动(Java Web Start,JWS)技术,以及如何使用Ant构建工具来签名JNLP应用。在Java Web Start中,JNLP(Java Network Launch Protocol)是用于启动...
用jnlp开启一个服务,实现本地桌面远程共享
java哪里都好用,不会就用jnlp来下载JAVA吧,就用它来下载,很不错的下载软件
https://blog.csdn.net/weixin_46560589/article/details/128801979 文章《【Kubernetes 企业项目实战】06、基于 Jenkins+K8s 构建 DevOps 自动化运维管理平台(中)》测试 jenkins 的 CI/CD 实验所需资料文件!
本文将深入探讨如何在Web环境中检测用户系统上的JRE版本,并通过Java Network Launch Protocol (JNLP)文件直接启动应用程序。 首先,我们要了解如何检测用户的JRE版本。这通常通过JavaScript实现,因为JavaScript...
标题 "jfreechart-1.0.8-demo.jnlp" 指示的是一个基于JFreeChart库的1.0.8版本的演示程序,其中可能包含了展示JFreeChart功能的各种图表示例。JFreeChart是一个开源Java库,用于创建高质量的、可定制的图表,包括...
OneWireViewer软件的java运行版本,ONEWIREVIEWER JAVA WEB入门,可以将OneWireViewer作为Java™Web Start程序安装在Java支持的操作系统上。
maven-jnlp-plugin-1.4.jar
java工具包jviewer
提供了使用jfreechar能完成的15大类的图,比如柱状图,饼图等。
《Ant-JNLP-WAR_Deps-0.9.jar.zip:构建Java Web应用程序的利器》 在Java开发领域,Ant和JNLP是两个至关重要的工具,它们在构建和部署Web应用程序时起着核心作用。Ant是Apache软件基金会的一个项目,提供了一种基于...
https://xsavikx.github.io上的一个电脑操作手机并可以录屏的小工具,需要安装jdk