首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络编程-> JSP教程
利用 Java Web Start发布你用java程序-JSP教程,Java技巧及代码
作者:网友供稿 点击:655
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 


前言:
关于 jws
jws 是作为 jsr-56 的一部分而创建的,目的是提供一种方法来分发在客户端上的 jvm 中运行的 java 应用程序。jws 包括以下特征:

部署
运行 jws 应用程序包括选择 html 链接,与打开新的页面没有什么区别,惟一的不同之处在于 web 服务器页面是 .jnlp 文件,该文件启动 jws 插件来在客户端上本地下载和执行应用程序。
缓存
一旦应用程序下载完毕,就可以把它缓存在客户端电脑上。每当应用程序重新启动时,jws 就检查服务器,查看是否有更新的版本要下载。如果没有,就运行本地的版本,从而避免再次下载。如果存在一个新的版本,就自动检索新的版本,因此管理员从来就不必担心旧的客户端连接到已更新的服务器程序 api 上。
独立于浏览器 jre
jws 允许您精确地指定您想在什么客户端 jre 级别中运行它(独立于浏览器是如何配置的)。这一特征避免了 applet 标记和浏览器 jre 级别的问题(比如用 microsoft internet explorer)。与 applet 标记共享单一的用于浏览器的 jvm 实例不同,每个 jws 应用程序都有自己独立的 jvm,并通过它自己的 main(string[] args) 方法启动。
安全性验证
java 安全性模型用于验证 jws 应用程序的来源并限制对易受攻击的系统服务(比如 i/o 和通信)的访问。 必须通过认证已签署的 jar 文件来授予每个 jws 程序显式访问这些服务的权限。
桌面集成
一旦 jws 应用程序从 .jnlp 文件下载完毕,就可以把它集成在桌面上作为独立的图标。这样该应用程序就可以重新启动而不用通过 web 浏览器。

如果您有 jre 1.4.1 或更新的版本,那么您已经安装了 java web start 。如果您没有 jre 1.4.1 或更新的版本,可以从 sun 下载页面下载并安装 jre。

与介绍 gui 编程的新方法的文章的传统一样,第一步是创建 web 启动应用程序,它显示带有“hello world”的对话框:这分两步进行:首先创建类并将其部署在 web 服务器中,接着客户端个人计算机访问该 url,这样就可以通过 jws 下载和调用它。
sun 提供了一个实现jnlp的称为java web start(jws)的参考实现。让我们使用它开发一个使用jfc swing的简单应用。为了做这个,你需要从http://java.sun.com/products/javawebstart下载jws。(译者注:jdk的新版本jdk1.4已经内置jws,无须另外下载。)

操作步骤:
一.一般的应用发布
1)创建要发布的应用程序;
创建例子文件hellojnlp.java 文件
//------------------------------------------------------
/*
* created on 2004-11-10
*
* todo to change the template for this generated file go to
* window - preferences - java - code style - code templates
*/

/**
* @author jackey
*
* todo to change the template for this generated type comment go to window -
* preferences - java - code style - code templates
*/
//file hellojnlp.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class hellojnlp extends jframe {
public hellojnlp() {
super("hello jnlp");
string loadedfrom = this.getclass().getclassloader().tostring();
jlabel jl = new jlabel("loaded by " + loadedfrom);
jeditorpane jtp = new jeditorpane("text/plain", "edit this text ");
try {
jtp.setpage("http://127.0.0.1:8080/");
} catch (exception e) {
// todo: handle exception
system.err.println("error: "+e.getmessage() );
}

getcontentpane().add(jl, borderlayout.north);
getcontentpane().add(jtp, borderlayout.center);
}

public static void main(string[] args) {
jframe f = new hellojnlp();
f.setbounds(100, 100, 325, 250);
f.setdefaultcloseoperation(dispose_on_close);
f.setvisible(true);
f.addwindowlistener(new windowadapter() {
public void windowclosed(windowevent e) {
system.out.println("shutting down...");
system.exit(0);
}
});
}
}
//------------------------------------------------------
2)编译和打包成.jar文件;
d:>javac hellojnlp.java

d:\eclipse\workspace\jnlp\bin 的目录

2004-11-10 09:49 <dir> .
2004-11-10 09:49 <dir> ..
2004-11-10 14:49 1,889 hellojnlp.class
2004-11-10 14:49 651 hellojnlp$1.class
2004-11-10 12:57 2,091 hellojnlp.jar
2004-11-10 10:32 422 hellojnlp.jnlp
2004-11-10 13:53 178 index.html
2004-11-10 14:45 1,211 joestore
2004-11-10 14:46 3,403 shellojnlp.jar
7 个文件 9,845 字节
2 个目录 3,277,553,664 可用字节

d:\eclipse\workspace\jnlp\bin>jar cvf hellojnlp.jar *.class
标明清单(manifest)
增加:hellojnlp$1.class(读入= 651) (写出= 422)(压缩了 35%)
增加:hellojnlp.class(读入= 1889) (写出= 1079)(压缩了 42%)

3)发表应用到web server上
将生成的hellojnlp.jar 文件copy到tomcat的webapp目录之下.
4)创建.jnlp文件;
使用文本编辑器来编辑一下内容.保存hellojnlp.jnlp文件
<?xml version="1.0" encoding="utf-8"?>
<!-- file hello.jnlp -->
<jnlp codebase="http://127.0.0.1:8080/" href="hellojnlp.jnlp">
<information>
<title>hello jackey</title>
<vendor>jackey jiao sample may 2004</vendor>
<icon href="photo1.jpg"/>
</information>
<resources>
<j2se version="1.2+"/>
<jar href="shellojnlp.jar"/>
</resources>
<application-desc main-class="hellojnlp"/>
</jnlp>
5)编辑html页面
保存为index.html文件.
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title> new document </title>
<meta name="generator" content="editplus">
<meta name="author" content="">
<meta name="keywords" content="">
<meta name="description" content="">
</head>

<body>
<ul>
<li><a href="hellojnlp.jnlp">hellojnlp</a>
<li><a href="showdsb.jnlp">showdsb</a>
</ul>


</body>
</html>

6)启动java web start

在java web start 应用程序管理器的地址里输入我们的web applicatoin 发布的地址
http://127.0.0.1:8080/index.html
运行成功!


二.有访问外部资源的应用发布

安全性:
一些 jws 应用程序可能希望访问客户端个人计算机上的服务,比如 用于读取和写入文件或打开套接字
并进行连接的 io。为了安全性的目的,您不想恶意程序无限制地访问您的个人计算机上的这些工具,为此,
jws 使用 java 安全性模型和 jar 文件认证。在缺省情况下,jws 虚拟机是一个受限的沙箱(sandbox),
它拒绝对这些服务的访问。如果您试图超出安全性管理器的许可,比如执行一些文件 io ,就会产生一个异常。
操作的步骤:
1)修改.jnlp文件
<?xml version="1.0" encoding="utf-8"?>
<!-- file hello.jnlp -->
<jnlp codebase="http://127.0.0.1:8080/" href="hellojnlp.jnlp">
<information>
<title>hello jackey</title>
<vendor>jackey jiao sample may 2004</vendor>
<icon href="photo1.jpg"/>
</information>
<security>
<all-permissions/><!--加入安全权限-->
</security>
<resources>
<j2se version="1.2+"/>
<jar href="shellojnlp.jar"/><!--修改此处-->
</resources>
<application-desc main-class="hellojnlp"/>
</jnlp>
2)创建签署的.jar文件
为了签署 jar 文件,您可以使用 jdk 附带的 keytool 命令,即使您将把您的
jws 应用程序放在完整的产品中,也还是推荐您从像 thawte 或 verisign 这样的结构获得认证。

d:\eclipse\workspace\jnlp\bin>keytool -genkey -alias helloalias -keypass wsddjws
-keystore joestore -storepass richjavaclient
您的名字与姓氏是什么?
[unknown]: jackey
您的组织单位名称是什么?
[unknown]: wbx
您的组织名称是什么?
[unknown]: china
您所在的城市或区域名称是什么?
[unknown]: hz
您所在的州或省份名称是什么?
[unknown]: zj
该单位的两字母国家代码是什么
[unknown]: cn
cn=jackey, ou=wbx, o=china, l=hz, st=zj, c=cn 正确吗?
[否]: y


d:\eclipse\workspace\jnlp\bin>

d:\eclipse\workspace\jnlp\bin>jarsigner -keystore joestore -signedjar shellojnl
p.jar hellojnlp.jar helloalias
enter passphrase for keystore: richjavaclient
enter key password for helloalias: wsddjws

d:\eclipse\workspace\jnlp\bin>
3)发布新的应用
copy index.html 和 shellojnlp.jnlp文件我tomcat下面.
运行的情况如图.



结束语
本文展示了可以如何使用 java web start 来分发 websphere 中丰富的 java 应用程序,以便它们运行在客户端个人计算机上。通过使用 .jnlp 文件来指定关于应用程序的信息可以做到这一点。本文还展示了如何在客户端个人计算机上缓存这些应用程序以及可以如何以桌面快捷方式的形式安装它们。当应用程序需要更新时,它是在服务器上的一个单独的位置进行更改的,因而所有的客户端都可以根据 .jnlp 文件的日期和时间戳在它们下一次连接时获取新的副本。另外,本文展示了可以如何用 jnlpdownloadservet 来软复制 jnlp 文件的代码库以及如何提供显式的日期和时间戳,从而允许 .jnlp 文件在分布式环境中的 websphere 的多个副本之间复制,而同时作为单个程序定义出现在客户端中。我们希望您会发现 jws 是一种强大而灵活的管理丰富的实际 java 客户端应用程序的工具.



文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·利用 Java Web Start发布你用java程序-JSP教程,Java技巧及代码
·用正则表达式得到网页上的链接-.NET教程,评论及其它
·MSMQ,Enterprise Service, DotNet Remoting,Web Service 的优缺点-.NET教程,Web Service开发
·用vb编一个计算器,需要用到数组,看看下面的代码,欢迎来找碴!-.NET教程,VB.Net语言
·jsp页面中的下载功能实现-JSP教程,Jsp/Servlet
·利用Java 创建和读取Excel文档-JSP教程,Java技巧及代码
·JSP语法(8)——<jsp:forward>-JSP教程,Jsp/Servlet
·Hibernate 配置!-JSP教程,资料/其它
·java、J2EE基础问题汇总-JSP教程,Java技巧及代码
·Java手机程序设计入门 电子书开放下载(转自CSDN)-JSP教程,J2ME开发
最新文章
·photoshop制作重彩风格非主流照片效果_photoshop教程
·google补充材料没消失,内链优化很重要_seo网站优化
·个人网站建设到底怎样赚钱_网赚技巧
·英文垃圾站全功略ip日100月赚50刀_网赚技巧
·清客讲网赚思路_网赚技巧
·windear与渡虎谷密谋_站长访谈
·口碑网ceo李治国专访:独特的平衡之道_站长访谈
·密密麻麻圈网邵晨:我从“互动”中赚钱_站长访谈
·蔡文胜:站长的乐趣是享受建站的过程_站长访谈
·“鹰”之路—访著名linux内核程序员大鹰_站长访谈
相关主题
  • 利用 JAXB 通过 XML 模式生成 XML 文档-.NET教程,XML应用
  • 利用 Java 平台的特性建造一个令人瞩目的系统-JSP教程,Java基础
  • 利用 Java 撰寫PDA應用程式【链接】-JSP教程,资料/其它
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭