当前位置:  技术问答>java相关

有谁对“java web start”了解?还望指点指点!!

    来源: 互联网  发布时间:2015-09-01

    本文导语:  java web start他的原理是怎样的啊?好像还要用C++来实现(一定吗?),如何做java web start啊?步骤如何?还望高手指教!! | java web start与服务器的类型无关,因为它本身不是EJB,它类似一...

java web start他的原理是怎样的啊?好像还要用C++来实现(一定吗?),如何做java web start啊?步骤如何?还望高手指教!!

|
java web start与服务器的类型无关,因为它本身不是EJB,它类似一个可下载的客户端,服务器不大会管理它。wjmmml(笑着悲伤) 已经写的很清楚了,看看JWS简介。

|
ava Web Start(以下简称JWS)是SUN提供的一种通过Web来部署和发布Java 程序的新技术,它既可以用来发布Application,也可以用来发布Applet,它获去年全球Java技术最佳创意奖。它仅在第一次运行时下载程序,以后的事情,就全全交给JWS,包括版本的自动更新和维护。这是我们曾经梦寐以求的事情,程序运行在客户端(本地运行,当然有足够的速度),但不用去安装配置客户端,也不用去考虑版本升级后对客户端的维护,这就是JWS提供给我们的好处之一。OK,下面我们就来看看如何玩转JWS,本文仅用发布Application来做说明。
系统环境:Win2000Professional+Tomcat3.2.1+JDK1.3。


一:JWS简介 
JWS主要用来通过网络部署你的应用程序,它具有安全、稳定、易维护、易使用的特点。用户访问用JWS部署应用程序的站点,下载发布的应用程序,既可以在线运行,也可以通过JWS的客户端离线运行已下载的应用程序。对同一个应用程序,在第一次运行时下载,以后每次运行时,JWS的客户端会自动去探测是否有版本更新,有更新就自动下载新版本,没有更新就直接运行本地当前版本,所有的麻烦全由JWS去承担。好,下面我们就一步一步来搭建JWS


二:搭建支持JWS的Web站点 
第一步:你的Tomcat3.2.1已经正常运转


第二步:找到TomcatHOME/conf下的web.xml文件,在其中添加
application/x-java-jnlp-file



以支持JNLP文件。


三:部署应用程序 
第一步:开发你希望发布的应用程序


第二步:把应用程序及所用到的所有资源打成一个或多个jar包


第三步:如果你的应用程序不会用到任何运行这个应用程序的机器的本地资源,那么,你的应用程序就可以部署了。


第四步:如果你的应用程序用到了运行这个应用程序的机器的本地资源,那么,你的应用程序就必须先签名然后才可以发布。


第五步:如何给应用程序签名


1:首先确保你已经完全安装了Java2的环境,有keytool工具,它位于J2SE SDk的bin目录下。这一般不会有问题。


2:到Dos状态下,进入你需发布应用程序的jar包所在的目录,运行下面这句话
keytool -genkey -keystore myKeystore -alias jwstest


它将会提示你输入用户名、密码等,不用理它,按照提示随便输入即可,但一定要记住密码。运行结束它将会在当前路径下创建名为myKeystore的文件。


3:如果你想察看一下刚才生成的myKeystore文件的内容,可以使用下面这句话:
keytool -list -keystore myKeystore


显示出来应该类似如下: 
Keystore type: jks
Keystore provider: SUN


Your keystore contains 1 entry:


jwstest, Tue Nov 23 19:29:32 PST 2001, keyEntry,
Certificate fingerprint (Test):
C3:A9:CD:F3:D3:AC:4D:3F:3C:5B:AF:9E:CF:0D:46:5C








4:对你需发布应用程序的jar包进行签名,运行下面这句话:
jarsigner -keystore myKeystore yourtest.jar jwstest


其中yourtest.jar是你的jar包名,你需要修改它,别的就不必修改了。运行时会提示你输入密码,就是你刚才在生成myKeystore文件时设定的密码。


第六步:部署应用程序的jar包。


1:在Tomcat的webapps中新建目录JWSTest


2:在JWSTest下新建目录apps,META-INF,WEB-INF 


3:在apps下新建目录images和lib


4:在META-INF中拷入MANIFEST.MF


5:在WEB-INF中拷入web.xml


6:把已经准备好的jar包拷入lib目录下


四:Jsp页面 
第一步:编写用于Web访问的页面index.jsp如下: 





   function insertLink(url, name) {
       document.write(""  + name + "

");
   }


    insertLink("http://你的IP:8080/ JWSTest /apps/JWSTest.jnlp"," JWSTest ");











第二步:在jsp中添加检测访问的客户端是否已经安装了JWS的客户端的代码,示例如下: 





      var javawsInstalled = 0;
      isIE = "false";


      if (navigator.mimeTypes && navigator.mimeTypes.length) {
         x = navigator.mimeTypes['application/x-java-jnlp-file'];
         if (x) javawsInstalled = 1;
      } else {
         isIE = "true";
      }


      function insertLink(url, name) {
       if (javawsInstalled) {
            document.write(""  + name + "

");
         } else {
            document.write(""+ name +"

");
         }
      }




    on error resume next
    If isIE = "true" Then
      If Not(IsObject(CreateObject("JavaWebStart.IsInstalled"))) Then
         javawsInstalled = 0
      Else
        javawsInstalled = 1
      End If
    End If


   if(javawsInstalled){
    insertLink("http://你的IP:8080/ JWSTest /apps/JWSTest.jnlp"," JWSTest ");
   }else{
//通知用户要先安装JWS的客户端,你可以自己提供下载或是直接链接到Sun的JWS下载。
//分为两种,如果客户端已经安装了Java运行环境,则只要下载javaws-1_0_1_01-win-int.exe即可。
//如果客户端没有安装Java运行环境,则要下载完整的javaws-1_0_1_01-win-int-rt.exe。
   }











五:JNLP文件 
第一步:下面我们来编写JWS的核心配置文件JNLP,有了它,才能将以上各部分联系起来,真正让JWS运转起来。JNLP文件符合标准的XML语法,实质就是一个XML文件。当然,编写它的最好方式是对已写好的JNLP进行改写。JWSTest.jnlp示例如下: 


spec="1.0+"
codebase="http://你的IP:8080/JWSTest/apps"
href="/tech-qa-java/JWSTest.jnlp">

   
   YOUR Name
   
    JWS Test 
   
   


  


   
   









第二步:部分JNLP的关键语法


元素
spec:必须是1.0及以上版本,这里用1.0+,不需修改。
codebase:资源的URL,是JNLP指向各连接的起始处,需自行修改。
Href:JNLP文件相对codebase的存放位置,和JNLP文件的全名,需自行修改。


元素


Title:发布的应用程序简单标题,需自行修改。
Vendor:发行商信息,可以写上你的大名,需自行修改。
Homepage:存放有关应用程序的相关文档的URL,如help文件等,可有可无。
Description:对应用程序的描述,可以有多对,可有可无。
Icon:用户下载你的应用程序后,在JWS里显示的图标的URL,应是gif或jpeg格式。需自行修改。
Offline-allowed:选择项,允许用户离线运行应用程序,一般都会有,不用修改。


元素
选择项,如果没有指明,默认是不允许应用程序访问用户的本地资源,即应用程序是沙箱运行。
如果设定为,则表示允许应用程序访问用户的本地资源。一般都会设定此值。


元素


元素
main-class:应用程序运行启动的主类


:应用程序运行时的参数,可以有多个,每一个参数用一对参数。


至此,你已经完全构建了运转JWS的各部件。


六:完整发布和测试 
前面我们已经准备好了需发布的应用程序的jar包,也写好了用来访问的jsp文件和服务器端的核心jnlp文件。


第一步:在JWSTest下新建目录jsp。把index.jsp拷入jsp目录。


第二步:把jnlp文件直接拷入apps目录下。


第三步:在浏览器里输入:http://localhost:8080/JWSTest/jsp/index.jsp 即可访问到jsp页面。页面应出现JWSTest字样。


第四步:点击JWSTest,连接到apps下的JWSTest.jnlp文件,JWS启动,开始下载你发布的应用程序。


第五步:下载完毕,直接运行即可。以后,你也可以直接运行JWS客户端里已下载的应用程序。


不出意外,应恭喜你已经开始享受JWS带来的乐趣了。


七:常见问题 
通过上面的讲述,你一定能体会到JWS的易用性。或许事情并没有那么简单,以我的使用经验,还会有许多问题出现,在这里挑几个经常出现的问题,给出相应解决方法,让大家少走弯路,而享受更多的乐趣。


问题一:JWS不能运行,JNLP文件像普通XML文件一样显示在Browser里


解决办法:请修改tomcat里,发布程序的路径中的web.xml。


在其中添加
application/x-java-jnlp-file

以支持JNLP文件。


问题二:不能下载资源或下载资源失败


解决办法:请卸载JWS的客户端,并将注册表里有关JWS的项目都删除,并确保program Files下的Java Web Start目录已被删除,然后,重装JWS。


问题三:下载资源中有未签名文件


解决办法:1:确保所有的jar包及其他资源都进行过签名。


2:确保整个资源中,没有中文的命名。好像签名工具不支持中文命名的文件名,所以未签到名。这可让我郁闷了一下午哦。


3:察看已经签名的jar包中,meta-inf路径下的jwstest.sf(jwstest是你在进行签名时-alias后的命名)文件,他详细的列出了所有已签名的文件,以分析签名失败的原因。


有关参考 详见 http://java.sun.com/products/javawebstart/  



    
 
 

您可能感兴趣的文章:

  • 一段小小的Java程序,请指点指点!!!多谢!
  • 想学Java但不知道最常用的开发工具,请各位兄弟指点指点,谢谢
  • 高手指点:不用JNI,如何在Java进程中新起一个JVM并在其中启动另一个Java进程。
  • 我用telnet登陆到linux下运行了一个java程序,在关闭了telnet后怎么能让这个java程序继续执行,请高手指点一下
  • 各位高手,我想学Java,请指点迷途
  • 学习java的迷惑...望各位大侠指点迷经
  • 请问java如何调用com?请大家发表意见和指点一下。
  • 初学java,请多多指点,谢谢!
  • 新手如何加入开源项目 有什么好的c++,java 开源适合新手 请指点!
  • 初学java,请指点!
  • 有关java applet的绘图问题,请高手指点!!!!
  • 新手学java,请前辈指点!!怎样开始学?用什么教材?
  • 一个有关jdbc的RMI的问题,JAVA高手指点一下
  • linux下查看java项目虚拟内存很大,请高手指点下
  • 我想学Java,高手指点
  • 如何学好java…………,我没有方向了…………请高手指点!!!
  • 大家好,我想学JAVA,不知该从何处下手,高手指点,谢谢!!!
  • JAVA I/O 问题,请指点!
  • 学习design pattern,苦于没有java代码的例子,高手指点
  • 请各位JAVA高手前辈指点迷津
  • 谁了解JAVA方面的认证,想考一个JAVA的认证!XIEXIE
  • 我正准备学java,想了解一下java的概况
  • 请问IE6怎么不支持JAVA(想知道详细一点)?(对JAVA不熟想了解以下)
  • 了解一下北京搞java的要求和待遇,来者有分。
  • 我刚把c大概了解了一下不知道现在开始学习java怎么样??/
  • 了解一下行情,在北京用JAVA做数据库,一般多少钱?(来者有分)
  • 我想了解一些关于Java怎样与Asp或Asp.net结合方面在未来发展方向的问题?
  • 现在要做一个java项目,不知道需要了解哪些技术?
  • 希望了解java,能推荐一个好的开发工具和一本好的入门书籍吗?我以前直到现在都在用VC,接下来想在C#和java中选一个做为第二语言。
  • 急!!谁了解macintosh?能不能给我介绍介绍?是不是跟linux差不多?使用开发工具JDK,这是不是不JAVA?
  • 小弟正学JAVA,请问我需要了解多少关于数据库的知识啊
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.swing枚举swingworker.statevalue的类成员方法: started定义及介绍
  • 关于Java Web Start的问题,
  • java命名空间javax.sound.midi类shortmessage的类成员方法: start定义及介绍
  • 代替Java Web Start Getdown
  • java命名空间javax.sound.sampled类lineevent.type的类成员方法: start定义及介绍
  • java web start实例代码COPY不了,怎么办?
  • java命名空间javax.management.monitor类monitor的类成员方法: start定义及介绍
  • 谁帮忙把Java Web Start的快捷方式发给我?
  • java命名空间javax.management.monitor接口monitormbean的类成员方法: start定义及介绍
  • 请问java web start和jre分别是什么意思啊?!(请路过的前辈赐教!!!)
  • java命名空间javax.swing类timer的类成员方法: start定义及介绍
  • java thread start()和run()方法简析
  • java命名空间javax.swing.text.html类html.attribute的类成员方法: start定义及介绍
  • 用Java Web Start + SWT还是用QT?
  • java命名空间javax.xml.stream接口xmlstreamconstants成员方法: start_document定义参考
  • 请问:java web start 是什么呢?
  • java命名空间javax.xml.stream接口xmlstreamconstants成员方法: start_element定义参考
  • 请问这个错误是撒啊:Failed to start Java VM: 3 (启动jbuilder5时就弹出来)
  • java命名空间javax.management.timer类timer的类成员方法: start定义及介绍
  • 安装了J2EESDK1.4了,也安装了JAVA WEB START,可是我不知道怎样才可在EXPLOERE中运行我的JAVA程序,
  • java命名空间java.awt类font的类成员方法: layout_no_start_context定义及介绍
  • JB4安装完。运行时出现Failed to start Java VM:2 。怎么办!系统WIN2000pro。
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3