一JNLP介绍:
在java开发的早期,重点被放在了客户端开发。语言中对于applet和安全下载的支持对于万维网(WWW)的发布看上去是个不错的主意。但是现实是java最大的成功在于服务器端,java的强大功能和适应 性赢得了服务器端开发者的心。同时,客户端的开发落后了。棘手的开发问题限制了applet的效用,开发者被迫转向基于浏览器的瘦客户端。
Java Network Launching Protocol (JNLP,java网络加载协议) 承诺改变这个现状。通过JCP(Java Community Process)的JSR-56的开发, JNLP解决了很多先前用java开发针对客户端的功能的问题。一个JNLP客户端是一个应用程序或者说服务,它可以从宿主于网络的资源中加载应用程序。如果你使用JNLP打包一个应用程序,那么一个JNLP客户端能够:
o 为该应用探测,安装并且使用正确版本的JRE(java运行时环境)
o 从浏览器或者桌面加载应用程序
o 当新版本的应用出现时自动下载最新的版本。
o 为了加速启动速度在本机缓存应用程序需要的类
o 可以作为applet或者应用程序运行
o 在必要的情况下下载原始的库
o 以安全的方式使用诸如文件系统这样的本机资源
o 自动定位和加载外部依赖资源
二 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"命令 打开的应用程序缓存查看器(Java Application Cache Viewer)中--> <title>HelloWorld</title> <vendor>Lively Corporation</vendor> <description>HelloWorld Test 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版本--> <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"/> </jnlp>
三 JNLP部署应用
(1)编写相关应用,打包成一系列jar;
(2)根据jnlp文件说明修改相应的jnlp内容,修改相应的url和jar;
(3)部署jnlp文件和jar到相应的web容器;
(4)编写访问网页,即可使用该应用〔亦可下载jnlp文件使用javaws运行应用〕;
四 补充
如果jar需要访问本地文件资源,需要为你的jar文件签名
先在命令行用keytool产生一个keystore文件.
命令行用jarsigner签名,当然这时候需要生成keystore时的密码
重新部署即可
相关推荐
JNLP使得用户可以通过Web浏览器启动和运行Java应用程序,无需手动安装。它提供了从服务器自动下载和更新应用的能力,极大地提升了用户体验。JNLP文件通常包含应用程序的元数据,如主类、库依赖、图标等。在这个"ant-...
### Java程序中启动浏览器 #### 知识点一:Runtime 类与系统命令交互 在 Java 程序中,可以通过 `java.lang.Runtime` 类来执行操作系统级别的命令,从而实现与外部程序的交互。例如,本示例中的 `TestHtml` 类通过...
2. **Java Web Start(JWS)**:Java Web Start是一种技术,允许用户从Web服务器下载并启动Java应用程序。它使用`jnlp`(Java Network Launching Protocol)文件来描述应用程序的资源和依赖项。JWS提供了“一次点击...
JNLP(Java Network Launch Protocol)是Java Web Start的一部分,它是一个用于从Web服务器启动和管理Java应用程序的技术。用户通过点击一个JNLP文件,浏览器会调用Java Web Start,下载并自动运行所需的JAR文件。...
总结来说,Java Web Start和JNLP协议为Java应用程序提供了方便的网络启动和更新机制,虽然随着技术的发展其重要性有所下降,但在特定场景下仍然是一个实用的解决方案。了解并掌握JNLP的使用,可以帮助开发者更有效地...
Java Web Start(JWS)...Java Web Start虽然在Java 9之后被官方逐渐弃用,但仍然有企业或个人开发者选择使用它来分发Java应用程序,因为它的便利性和跨平台特性。理解JNLP的详细知识对于这些开发者来说是至关重要的。
标题 "JNLP" 指的是 Java Network Launch Protocol,这是一种由Java平台提供的技术,用于在网络上启动和运行Java应用程序。JNLP是Java Web Start的一部分,允许用户在浏览器或者独立的桌面环境中无缝地下载、安装和...
7. **嵌入网页**:将Java小应用程序嵌入网页通常通过Java Web Start技术实现,这是一个基于Java的客户端应用启动技术,允许用户通过浏览器下载并运行Java应用程序。 以下是实现上述功能的简单步骤: 1. 创建JFrame...
JNLP应用程序本质上是在客户端运行的Java应用程序,其初始启动通常由Web浏览器触发。这些应用程序通过所谓的“应用程序描述器”(即JNLP文件)进行配置,确保在安全沙箱环境中运行,同时具备自动更新和升级的能力。...
这个jnlp(Java Web Start)文件是Java应用程序的启动链接,用户可以通过Java Web Start平台在浏览器上运行该演示。 描述中的"demo 和 sourcecode都在"意味着这个压缩包不仅提供了可执行的演示程序,还包含了源代码...
JRE是Java应用程序运行的基础,不同的应用可能依赖特定版本的JRE以保证兼容性和性能。本文将深入探讨如何在Web环境中检测用户系统上的JRE版本,并通过Java Network Launch Protocol (JNLP)文件直接启动应用程序。 ...
在"标签"中提到了"jar",这指的是Java Archive,是一个包含多个Java类文件和其他资源的容器,用于构建可执行的Java应用程序或库。在压缩包内的文件列表中,尽管没有直接列出jar文件,但可以推测其中的"lib"目录可能...
Java Web Start 使用 JNLP(Java Network Launching Protocol)来下载和启动应用程序。JNLP 文件是 XML 格式,包含了应用程序所需的资源信息,如主类、库、图标以及权限等。当用户点击 JNLP 链接时,Java Web Start ...
随后,Java Web Start会自动从Web服务器下载应用程序所需的文件,缓存一部分,并启动描述中的Java应用程序。值得注意的是,Java Web Start还简化了Java应用程序(包括Java Applets)的安装过程,并能够实现应用程序...
Java程序发布是一个重要的过程,它涉及将开发完成的Java应用程序打包、配置和部署,以便用户可以在不同的环境中运行。以下是对这个主题的详细说明: 一、Java程序发布的基本流程 1. **编译**:首先,Java源代码(....
JavaWebStart是Java平台上一种基于浏览器的Web应用程序部署技术,由Oracle公司开发,它允许用户通过点击网页上的链接来启动和运行本地的Java应用程序。这个技术的核心理念是提供了一种安全、便捷的方式,使得用户...