如何使用Java网络启动部署软件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Java网络启动部署软件相关的知识,希望对你有一定的参考价值。
参考技术AJava网络启动(Java Web Start (JWS) )可以实现在网络浏览器中运行具备全部特色的Java应用软件 Sun公司在 年三月发布的Java 就已经具备了对JWS的支持 自从J SE 版本以来 JWS就已经成为Java运行时环境(Java Runtime Environment (JRE) )的默认配置 不必再单独安装了 在这篇文章中 我将向您介绍这一重要技术
技术
JWS是与网络浏览器相结合的应用软件 当用户点击链接的时候就会指向一个Java网络启动协议(Java Neork 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 =
Else
javawsInstalled =
End If
If Not(IsObject(CreateObject( JavaWebStart isInstalled ))) Then
javaws Installed =
Else
javaws Installed =
End If
If Not(IsObject(CreateObject( JavaWebStart isInstalled ))) Then
javaws Installed =
Else
javaws Installed =
End If
End If
</SCRIPT>
开发
开发部署在JWS上的软件和开发独立运行的软件在Java 平台上是基本相同的 比如 程序的起点都是以下的标准代码
public static void main(String[] argv)
然而 为了支持网络部署 也就是实现自动下载和调用软件 并且保证软件在一个安全的沙盒中运行 还需要一些额外的考虑 包括
应用软件必需作为JAR文件集合来使用 所有的应用软件资源 比如文件 图片都必需存储在JAR文件中 而且它们都必需使用Java 平台的getResource机制来引用 应用软件可以使用System exit调用 进行不受限制地访问系统的软件需要通过签名的JAR文件来使用 而且JAR文件中所有的项目都必需经过签名 如果软件要运行在一个安全沙盒中 那么它必需遵循以下的限制; 不能进行本地磁盘访问 所有的JAR文件都必须从同一个主机下载 只能和下载JAR文件的主机之间建立网络连接 不能安装安全管理器 不能使用本地类库对系统属性的访问受到限制 对于JNLP中定义了的系统属性 应用软件可以进行读/写操作 并且对于相同的属性集合具备和applet一样的只读权限
安全
JWS是构建于Java 平台之上的 Java 平台提供了一个全面的安全架构 在Java 版中 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= encoding= UTF ?>
<jnlpcodebase= _app >
<information>
<title>Hello world!</title>
<vendor>My Web Company</vendor>
<icon />
<offline allowed/>
</information>
<resources>
<j se version= + />
<jar />
</resources>
<application desc main class= helloworld Hello />
</jnlp>
这个JNLP文件描述了如何调用名为Hello的程序 在JNLP文件中指定了需要 或更高版本的Java来运行该程序 同时还有一些与程序相关的信息 这些信息都会在用户下载的过程中显示
如果您希望了解更详细的JNLP协议和文件格式 可以参考这个官方规范
结论
JWS提供了一种与平台无关的 安全的而且强大的部署技术 开发者只需要将应用软件部署在网络服务器上就可以为最终用户提供全部的功能 而最终用户也只需要使用网络浏览器就可以运行所需的应用软件 而且永远是最新的版本
JWS的一个主要优点是它克服了Java插件和不同Java虚拟机的兼容性问题 但是 使用网络启动的程序却不能像applet一样简单地和浏览器进行通讯
lishixinzhi/Article/program/Java/hx/201311/26465
使用网络Ghost批量部署Windows Server 2008 R2
1、准备一台Windows Server 2008 R2操作系统做为模板(部署好需要的软件);
2、运行sysprep清除服务器的SSID,选择关机
3、通过U盘加载WINPE进行系统备份,Windows Server 2008 R2主引导记录为单独分区,需要进行整盘备份
4、找一台计算机安装网络Ghost软件(MouseDos PXE)
5、打开MouseDos PXE软件,选择TFtpd32 PXE无盘启动服务器
6、配置TFtpd32 PXE
7、运行Ghost网络克隆服务器
8、其它计算机在BIOS里面选择从网络启动
(注:如果是整盘克隆不需要创建分区,直接克隆)
9、配置克隆向导
以上是关于如何使用Java网络启动部署软件的主要内容,如果未能解决你的问题,请参考以下文章
如何将软件构建从 Azure DevOps 部署到内部服务器?