仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1969|回复: 20
打印 上一主题 下一主题

[学习教程] JAVA编程:使用 Java Web Start公布你用java程序

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:42:33 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,web|程序

媒介:
关于JWS
JWS是作为JSR-56的一部分而创立的,目标是供应一种办法来分发在客户端上的JVM中运转的Java使用程序。JWS包含以下特性:

部署
运转JWS使用程序包含选择HTML链接,与翻开新的页面没有甚么区分,唯一的分歧的地方在于Web服务器页面是.jnlp文件,该文件启动JWS插件来在客户端上当地下载和实行使用程序。
缓存
一旦使用程序下载终了,就能够把它缓存在客户端电脑上。每当使用程序从头启动时,JWS就反省服务器,检察是不是有更新的版本要下载。假如没有,就运转当地的版本,从而制止再次下载。假如存在一个新的版本,就主动检索新的版本,因而办理员历来就不用忧虑旧的客户端毗连到已更新的服务器程序API上。
自力于扫瞄器JRE
JWS同意您准确地指定您想在甚么客户端JRE级别中运转它(自力于扫瞄器是怎样设置的)。这一特性制止了Applet标志和扫瞄器JRE级其余成绩(好比用MicrosoftInternetExplorer)。与Applet标志共享单一的用于扫瞄器的JVM实例分歧,每一个JWS使用程序都有本人自力的JVM,并经由过程它本人的main(String[]args)办法启动。
平安性考证
Java平安性模子用于考证JWS使用程序的来历并限定对易受打击的体系服务(好比I/O和通讯)的会见。必需经由过程认证已签订的JAR文件来授与每一个JWS程序显式会见这些服务的权限。
桌面集成
一旦JWS使用程序从.jnlp文件下载终了,就能够把它集成在桌面上作为自力的图标。如许该使用程序就能够从头启动而不必经由过程Web扫瞄器。

假如您有JRE1.4.1或更新的版本,那末您已安装了JavaWebStart。假如您没有JRE1.4.1或更新的版本,能够从Sun下载页面下载并安装JRE。

与先容GUI编程的新办法的文章的传一致样,第一步是创立Web启动使用程序,它显现带有“HelloWorld”的对话框:这分两步举行:起首创立类并将其部署在Web服务器中,接着客户端团体盘算机会见该URL,如许就能够经由过程JWS下载和挪用它。
Sun供应了一个完成JNLP的称为JavaWebStart(JWS)的参考完成。让我们利用它开辟一个利用JFCSwing的复杂使用。为了做这个,你必要从http://java.sun.com/products/javawebstart下载JWS。(译者注:JDK的新版本JDK1.4已内置JWS,不必别的下载。)

操纵步骤:
一.一样平常的使用公布
1)创立要公布的使用程序;
创立例子文件HelloJNLP.java文件
//------------------------------------------------------
/*
*Createdon2004-11-10
*
*TODOTochangethetemplateforthisgeneratedfilegoto
*Window-Preferences-Java-CodeStyle-CodeTemplates
*/

/**
*@authorJackey
*
*TODOTochangethetemplateforthisgeneratedtypecommentgotoWindow-
*Preferences-Java-CodeStyle-CodeTemplates
*/
//FileHelloJNLP.java

importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;

publicclassHelloJNLPextendsJFrame{
publicHelloJNLP(){
super("HelloJNLP");
StringloadedFrom=this.getClass().getClassLoader().toString();
JLabeljl=newJLabel("loadedby"+loadedFrom);
JEditorPanejtp=newJEditorPane("text/plain","Editthistext");
try{
jtp.setPage("http://127.0.0.1:8080/");
}catch(Exceptione){
//TODO:handleexception
System.err.println("Error:"+e.getMessage());
}

getContentPane().add(jl,BorderLayout.NORTH);
getContentPane().add(jtp,BorderLayout.CENTER);
}

publicstaticvoidmain(String[]args){
JFramef=newHelloJNLP();
f.setBounds(100,100,325,250);
f.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
f.setVisible(true);
f.addWindowListener(newWindowAdapter(){
publicvoidwindowClosed(WindowEvente){
System.out.println("Shuttingdown...");
System.exit(0);
}
});
}
}
//------------------------------------------------------
2)编译和打包成.jar文件;
d:>javacHelloJNLP.java

D:eclipseworkspacejnlpin的目次

2004-11-1009:49<DIR>.
2004-11-1009:49<DIR>..
2004-11-1014:491,889HelloJNLP.class
2004-11-1014:49651HelloJNLP$1.class
2004-11-1012:572,091HelloJNLP.jar
2004-11-1010:32422HelloJNLP.jnlp
2004-11-1013:53178index.html
2004-11-1014:451,211joestore
2004-11-1014:463,403sHelloJNLP.jar
7个文件9,845字节
2个目次3,277,553,664可用字节

D:eclipseworkspacejnlpin>jarcvfHelloJNLP.jar*.class
标明清单(manifest)
增添:HelloJNLP$1.class(读进=651)(写出=422)(紧缩了35%)
增添:HelloJNLP.class(读进=1889)(写出=1079)(紧缩了42%)

3)宣布使用到webserver上
将天生的HelloJNLP.jar文件copy到Tomcat的webapp目次之下.
4)创立.jnlp文件;
利用文本编纂器来编纂一下内容.保留HelloJNLP.jnlp文件
<?xmlversion="1.0"encoding="UTF-8"?>
<!--fileHello.jnlp-->
<jnlpcodebase="http://127.0.0.1:8080/"href="HelloJNLP.jnlp">
<information>
<title>Hellojackey</title>
<vendor>jackeyjiaoSampleMay2004</vendor>
<iconhref=http://www.163design.net/j/e/"photo1.JPG"/>
</information>
<resources>
<j2seversion="1.2+"/>
<jarhref="sHelloJNLP.jar"/>
</resources>
<application-descmain-class="HelloJNLP"/>
</jnlp>
5)编纂html页面
保留为index.html文件.
<!doctypehtmlpublic"-//W3C//DTDHTML4.0Transitional//EN">
<html>
<head>
<title>NewDocument</title>
<metaname="Generator"content="EditPlus">
<metaname="Author"content="">
<metaname="Keywords"content="">
<metaname="Description"content="">
</head>

<body>
<ul>
<li><ahref="HelloJNLP.jnlp">HelloJNLP</a>
<li><ahref="ShowDSB.jnlp">ShowDSB</a>
</ul>


</body>
</html>

6)启动javawebstart

在javawebstart使用程序办理器的地点里输出我们的webapplicatoin公布的地点
http://127.0.0.1:8080/index.html
运转乐成!


二.有会见内部资本的使用公布

平安性:
一些JWS使用程序大概但愿会见客户端团体盘算机上的服务,好比用于读取和写进文件或翻开套接字
并举行毗连的IO。为了平安性的目标,您不想歹意程序无穷制地会见您的团体盘算机上的这些工具,为此,
JWS利用Java平安性模子和JAR文件认证。在缺省情形下,JWS假造机是一个受限的沙箱(Sandbox),
它回绝对这些服务的会见。假如您试图超越平安性办理器的允许,好比实行一些文件IO,就会发生一个非常。
操纵的步骤:
1)修正.jnlp文件
<?xmlversion="1.0"encoding="UTF-8"?>
<!--fileHello.jnlp-->
<jnlpcodebase="http://127.0.0.1:8080/"href="HelloJNLP.jnlp">
<information>
<title>Hellojackey</title>
<vendor>jackeyjiaoSampleMay2004</vendor>
<iconhref=http://www.163design.net/j/e/"photo1.JPG"/>
</information>
<security>
<all-permissions/><!--到场平安权限-->
</security>
<resources>
<j2seversion="1.2+"/>
<jarhref="sHelloJNLP.jar"/><!--修正此处-->
</resources>
<application-descmain-class="HelloJNLP"/>
</jnlp>
2)创立签订的.jar文件
为了签订JAR文件,您可使用JDK附带的keytool命令,即便您将把您的
JWS使用程序放在完全的产物中,也仍是保举您从像Thawte或VeriSign如许的布局取得认证。

D:eclipseworkspacejnlpin>keytool-genkey-aliashelloAlias-keypasswsddjws
-keystorejoestore-storepassrichjavaclient
您的名字与姓氏是甚么?
[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:eclipseworkspacejnlpin>

D:eclipseworkspacejnlpin>jarsigner-keystorejoestore-signedjarsHelloJNL
P.jarHelloJNLP.jarhelloAlias
EnterPassphraseforkeystore:richjavaclient
EnterkeypasswordforhelloAlias:wsddjws

D:eclipseworkspacejnlpin>
3)公布新的使用
copyindex.html和sHelloJNLP.jnlp文件我Tomcat上面.
运转的情形如图.



停止语
本文展现了能够怎样利用JavaWebStart来分发WebSphere中丰厚的Java使用程序,以便它们运转在客户端团体盘算机上。经由过程利用.jnlp文件来指定关于使用程序的信息能够做到这一点。本文还展现了怎样在客户端团体盘算机上缓存这些使用程序和能够怎样以桌面快速体例的情势安装它们。当使用程序必要更新时,它是在服务器上的一个独自的地位举行变动的,因此一切的客户端都能够依据.jnlp文件的日期和工夫戳在它们下一次毗连时猎取新的正本。别的,本文展现了能够怎样用JnlpDownloadServet来软复制jnlp文件的代码库和怎样供应显式的日期和工夫戳,从而同意.jnlp文件在散布式情况中的WebSphere的多个正本之间复制,而同时作为单个程序界说呈现在客户端中。我们但愿您会发明JWS是一种壮大而天真的办理丰厚的实践Java客户端使用程序的工具.



在1995年5月23日以“Java”的名称正式发布了。
蒙在股里 该用户已被删除
21#
发表于 2015-6-6 20:41:04 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
精灵巫婆 该用户已被删除
20#
发表于 2015-6-5 11:35:39 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
变相怪杰 该用户已被删除
19#
发表于 2015-6-5 06:01:21 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
小女巫 该用户已被删除
18#
发表于 2015-4-29 17:25:02 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
小魔女 该用户已被删除
17#
发表于 2015-4-16 04:20:28 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
分手快乐 该用户已被删除
16#
发表于 2015-4-13 01:30:08 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
爱飞 该用户已被删除
15#
发表于 2015-4-6 21:10:33 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
简单生活 该用户已被删除
14#
发表于 2015-4-3 23:34:03 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
莫相离 该用户已被删除
13#
发表于 2015-3-27 08:51:36 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
乐观 该用户已被删除
12#
发表于 2015-3-19 06:00:15 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
第二个灵魂 该用户已被删除
11#
发表于 2015-3-17 19:02:29 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
飘飘悠悠 该用户已被删除
10#
发表于 2015-3-15 22:06:57 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
谁可相欹 该用户已被删除
9#
发表于 2015-3-12 19:51:35 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-7 11:43:57 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
海妖 该用户已被删除
7#
发表于 2015-2-25 13:27:38 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
若天明 该用户已被删除
6#
发表于 2015-2-16 01:06:54 | 只看该作者
是一种使用者不需花费很多时间学习的语言
不帅 该用户已被删除
5#
发表于 2015-2-6 17:40:16 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-2 23:08:38 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
admin 该用户已被删除
板凳
发表于 2015-1-25 15:57:39 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 07:39

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表