`

使用Java网络启动部署软件

阅读更多

-转载http://www.knowsky.com


java网络启动(Java Web Start (JWS) )可以实现在网络浏览器中运行具备全部特色的Java应用软件。Sun公司在2001年三月发布的Java1.0就已经具备了对JWS的支持,自从J2SE1.4版本以来,JWS就已经成为Java运行时环境(Java Runtime Environment (JRE) )的默认配置,不必再单独安装了,在这篇文章中,我将向您介绍这一重要技术。

技术


JWS是与网络浏览器相结合的应用软件,当用户点击链接的时候就会指向一个Java网络启动协议(Java Network Launching PRotocol (JNLP) )文件,然后浏览器自动启动JWS,接着下载、缓存并运行基于Java技术的应用软件。


在JWS背后的技术是JNLP及其API,它们是在Java团体进程(Java Community Process)中开发的。JWS实际上是JNLP规范的一个参考实现,JNLP技术定义了一个标准的文件格式,该格式描述了如何调用一个JNLP文件。


既然安装链接可以作为普通的HTTP URL的链接,那么您就可以通过网页来检查客户端是否安装了JWS,您可以在IE中通过以下代码来检查:


< SCRipT LANGUAGE="VBScript">


on error resume next


If isIE = "true" Then


If Not(IsObject(CreateObject("JavaWebStart.isInstalled"))) Then


javawsInstalled = 0


Else


javawsInstalled = 1


End If


If Not(IsObject(CreateObject("JavaWebStart.isInstalled.1.4.2.0"))) Then


javaws142Installed = 0


Else


javaws142Installed = 1


End If


If Not(IsObject(CreateObject("JavaWebStart.isInstalled.1.5.0.0"))) Then


javaws150Installed = 0


Else


javaws150Installed = 1


End If


End If


< /SCRIPT>


开发


开发部署在JWS上的软件和开发独立运行的软件在Java 2平台上是基本相同的,比如,程序的起点都是以下的标准代码:


public static void main(String[] argv)


然而,为了支持网络部署,也就是实现自动下载和调用软件,并且保证软件在一个安全的沙盒中运行,还需要一些额外的考虑,包括:


应用软件必需作为JAR文件集合来使用;

所有的应用软件资源,比如文件、图片都必需存储在JAR文件中,而且它们都必需使用Java 2平台的getResource机制来引用;

应用软件可以使用System.exit调用;

进行不受限制地访问系统的软件需要通过签名的JAR文件来使用,而且JAR文件中所有的项目都必需经过签名;

如果软件要运行在一个安全沙盒中,那么它必需遵循以下的限制;

不能进行本地磁盘访问;

所有的JAR文件都必须从同一个主机下载;

只能和下载JAR文件的主机之间建立网络连接;

不能安装安全管理器;

不能使用本地类库;

对系统属性的访问受到限制,对于JNLP中定义了的系统属性,应用软件可以进行读/写操作,并且对于相同的属性集合具备和applet一样的只读权限。


安全


JWS是构建于Java 2平台之上的,Java 2平台提供了一个全面的安全架构,在Java 6.0版中,JWS则提供了更加强大的安全特色,比如代码签名。


在默认状态下,通过JWS调用的应用软件将运行在一个受到限制的环境中(一个“沙盒”),它们对本地计算资源的访问,比如存储设备和本地网络,是有限的。这样,JWS就保证了下载的潜在的不可信任的软件不会危及到本地文件或网络。


当然,应用程序也可以请求不受限制的本地系统访问,在这种情况下,当该软件第一次调用时,JWS将显示安全警告对话框,安全警告的内容包含软件开发者的信息。


如果一个应用软件包含了一个或多个经过签名的JAR文件,JWS将会验证这些JAR文件在签名后是否发生过变化,如果数字签名的认证失败,那么JWS就不会运行该软件,因为它们已经被第三方修改过了。通过在JNLP文件中添加以下的设置,一个应用软件可以请求完整的权限。


< security>


< all-permissions/>


< /security>


JNLP文件


JNLP是一个和JWS紧密相关的概念,它经常可以和术语“网络启动”相互替代使用,实际上,JNLP是一个规定了JWS应用软件如何启动的协议。JNLP中的包含了诸如JAR包文件的位置、应用软件主要类的名称,以及程序的其它一些参数。在适当配置的浏览器中,JNLP文件是传递给JRE的,然后JRE将会下载应用软件到用户的机器上并开始执行。


一个JNLP文件不包含任何二进制数据,实际上它包含的URL指向所有的二进制数据和二进制代码资源。这些文件还可以指向其他的JNLP文件,它们被称为扩展描述符,一个扩展描述符通常描述了运行软件所必需的组件,在扩展描述符中描述的资源将会成为应用软件类路径的一部分,这样,常用的功能只需要描述一次即可,以下的例子是一个常见的JNLP文件:


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


< jnlpcodebase="http://www.helloworld.com/hw_app">


< information>


< title>Hello world!< /title>


< vendor>My Web Company< /vendor>


< icon href="hello.jpg"/>


< offline-allowed/>


< /information>


< resources>


< j2se version="1.3+"/>


< jar href="hw.jar"/>


< /resources>


< application-desc main-class="com.helloworld.Hello"/>


< /jnlp>


这个JNLP文件描述了如何调用名为Hello的程序,在JNLP文件中指定了需要1.3或更高版本的Java来运行该程序,同时还有一些与程序相关的信息,这些信息都会在用户下载的过程中显示。


如果您希望了解更详细的JNLP协议和文件格式,可以参考这个官方规范。


结论


JWS提供了一种与平台无关的、安全的而且强大的部署技术,开发者只需要将应用软件部署在网络服务器上就可以为最终用户提供全部的功能,而最终用户也只需要使用网络浏览器就可以运行所需的应用软件,而且永远是最新的版本。


JWS的一个主要优点是它克服了Java插件和不同Java虚拟机的兼容性问题,但是,使用网络启动的程序却不能像applet一样简单地和浏览器进行通讯。

资料引用:http://www.knowsky.com/397336.html

分享到:
评论

相关推荐

    如何使用Java网络启动部署软件

    Java网络启动(Java Web Start, JWS)是一种技术,它允许用户通过网络浏览器无缝地运行基于Java的应用程序。这项技术自Java 1.4版本起成为Java运行时环境(JRE)的一部分,无需额外安装。JWS的核心是Java Network ...

    嵌入式系统/ARM技术中的如何使用Java网络启动部署软件

     JWS是与网络浏览器相结合的应用软件,当用户点击链接的时候就会指向一个Java网络启动协议(Java Network Launching Protocol (JNLP) )文件,然后浏览器自动启动JWS,接着下载、缓存并运行基于Java技术的应用软件。...

    java项目部署.docx

    Apache Tomcat是一个广泛使用的轻量级应用服务器,尤其适用于部署Java Web应用程序,如Servlets和JSPs。Tomcat作为Apache软件基金会的Jakarta项目的核心组件,得益于Sun Microsystems(现在是Oracle的一部分)的支持...

    java_部署文件备份

    在IT行业中,尤其是在Java开发领域,部署文件备份是至关重要的工作环节。这关乎到系统的稳定性和数据的安全性。"java_部署文件备份"这个主题涵盖了Java应用的部署过程以及如何有效地进行备份,以防止数据丢失或系统...

    IM即时通讯java源码,附部署视频

    3. **服务器部署**:将编译后的文件上传至服务器,根据系统架构选择启动Java应用服务器如Tomcat、Jetty等。 4. **数据库初始化**:创建数据库并导入SQL脚本,设置好数据库连接配置。 5. **配置文件调整**:根据...

    自动部署相关jar包

    使用SSH2进行自动部署,你可以编写Java代码来连接到目标服务器,执行预定义的部署脚本,如解压应用、启动服务、更新配置等。这样,整个部署过程无需人工介入,大大提高了效率。 WebSocket,另一方面,是HTML5引入的...

    Java项目实战-基于java博网即时通讯软件的设计与实现(附源码,部署说明).zip

    本项目实战是关于使用Java语言开发一款博网即时通讯软件,旨在帮助开发者深入理解Java在实际项目中的应用,特别是涉及到网络通信和多线程技术。这个项目提供了完整的源码,并附带了详细的部署说明,方便学习者进行...

    使用java编写的简单的网络五子棋

    【标题】"使用Java编写的简单的网络五子棋"是一个基于Java编程语言开发的网络棋类游戏项目。...同时,由于它具有网络功能,开发者还可以深入研究多线程、套接字通信、并发控制等Java网络编程相关知识。

    用Java做出来的聊天软件

    2. **运行与更新**:安装完成后,用户可以通过桌面快捷方式启动聊天软件。开发者也可以提供自动更新机制,以便用户能轻松获取最新版本。 通过以上步骤,我们可以利用Java开发出一个功能完善的聊天软件,具备良好的...

    网络蚂蚁Java版.rar_ant_java_java 网络_蚂蚁

    【网络蚂蚁Java版】是一个基于Java编程语言实现的下载工具,其名称中的“网络蚂蚁”形象地比喻了软件能够分块下载大文件并同时多线程处理的特点,就像蚂蚁群体协同工作一样高效。这个工具利用了Java的多线程机制,...

    Minecraft1.15.2Java版+HMCL启动器+craftbukkit服务器集成环境

    然后,使用HMCL启动器安装Minecraft 1.15.2版本,接着配置Craftbukkit服务器,这可能涉及到下载服务器软件、配置服务器文件以及启动服务。最后,你可以根据教学需求选择使用Python与Minecraft的交互库,编写有趣的...

    java springboot网络教学管理系统(网络教学软件中的教学设计与应用).zip

    Java SpringBoot网络教学管理系统是一种基于Java技术和SpringBoot框架构建的在线教育平台,它结合了现代技术与教学设计理念,为教师、学生以及管理者提供了一个高效、便捷的互动学习环境。SpringBoot是Spring框架的...

    java软件技术文档 开发文档

    6. 软件环境与硬件环境:这部分描述了项目运行所需的硬件配置、操作系统、网络环境以及Java平台版本等,确保软件能够在指定环境下正常运行。 7. 开发工具:列出用于开发、测试、集成和部署的工具,如IDE(Eclipse, ...

    Java远程监控软件

    2. 远程监控原理:Java远程监控软件基于网络通信协议,如TCP/IP,通过开放特定的端口进行数据传输。客户端(被监控计算机)和服务器端(监控计算机)通过建立连接来交换信息。服务器端可以发送指令给客户端,如获取...

    jenkins+svn+maven+java-配置+安装+部署(windows版)

    - **部署脚本**: 使用Windows Shell脚本实现自动化部署。主要包括以下几个步骤: - 停止Tomcat服务器 - 检查并确认Tomcat相关进程已关闭 - 删除旧版本的WAR包和代码文件夹 - 将新版本的WAR包复制到Tomcat的...

    基于java的用JAVA做的聊天软件,有安装程序和源代码.zip

    【标题】中的“基于java的用JAVA做的聊天软件”表明这是一个使用Java编程语言开发的聊天应用程序。Java是一种广泛使用的面向对象的编程语言,以其跨平台兼容性和“一次编写,到处运行”的特性而闻名。它拥有丰富的...

Global site tag (gtag.js) - Google Analytics