Java Web Start (Continue)


<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

以前就听说Java Web Start (JWS)这个东西,据说可以实现自动更新。而那个时候刚好也在做一个dotnet相关的应用程序项目,里面也要求自动更新。如果那个项目要迁移到java下来的话就会采用这种技术了。现在有机会稍微再了解一些。
JWS是为了解决这么一个问题:既可以在本机上单独运行,又可以通过网络运行。显然Applet只能通过浏览器加载。当然由于浏览器中内置的JRE不同,可能Applet不能那么随心所欲的运行。在最初的时候,Applet在IE中的标签是<Applet>,但是Sun和MS感情不好之后就不再支持Sun的JRE规范了(据说只支持到1.1.4的版本)。为了实现Applet跨浏览器运行,就出来了Java Plugin。这个东西可以绕过浏览器内置的JRE,而统一采用sun的java plugin运行。这样也就可以在Applet运行比较新的控件,入Swing控件。当然这样的话<Applet>这个标签也得改。所以在一般的时候IE都会采用<Object>标签,然后注明用Java plugin运行applet。在NS下则好像是采用<Embeded>标签。当然好像Java plugin提供了一个工具将<applet>标签的转化成<Object>标签。至于Java plugin也是随着JRE一同安装的。通常JWS的运行程序Javaws也是同JRE一起安装的,与之一起安装的还有JVM。
JWS的入口是普通的main函数,这与Applet是不同的。正因为这样,所以JWS可以封装Applet的,不过可能需要手动调用Applet的init和start,就像在JFrame中嵌套Applet一样。JWS只有第一次运行的时候会从服务器中下载下来,之后如果没有更新的版本就会直接从cache中获取。用户可以通过控制面板中的Java选项看到本地缓存的应用程序(可以参考上一篇blog),即JWS。这些程序是可以直接启动的。当然还可以看到本地缓存的各种jar包,包括一些applet。但是这些jar是不能直接运行的。上面提到过JWS是可以实现自动更新的。这个也是由Java Web Start来负责自动更新的。“当启动了一个应用程序时,Java Web Start 检查 JNLP 文件并创建一个有 URL 和版本标识的 HTTP GET 请求。如果没有 version 属性,那么 Java Web Start 就只是创建一个 JAR 文件的 HTTP GET 请求。Java Web Start 检查 Web 服务器的响应状态代码和 MIME 类型来决定此 JAR 文件是否有更新的版本。”[1]
最近发现有一个名叫 Galileo的RIA开源项目,该项目实际上就是封装了Applet技术。而 FlexGantt则是一个JWS应用。

参考:
[1] Java Web Start 客户机端开发和分发 Java 应用程序

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值