国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

輕松玩轉(zhuǎn)Java Web Start

2019-11-18 12:52:03
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  java Web Start(以下簡(jiǎn)稱(chēng)JWS)是SUN提供的一種通過(guò)Web來(lái)部署和發(fā)布Java 程序的新技術(shù),它既可以用來(lái)發(fā)布application,也可以用來(lái)發(fā)布Applet,它獲去年全球Java技術(shù)最佳創(chuàng)意獎(jiǎng)。它僅在第一次運(yùn)行時(shí)下載程序,以后的事情,就全全交給JWS,包括版本的自動(dòng)更新和維護(hù)。這是我們?cè)?jīng)夢(mèng)寐以求的事情,程序運(yùn)行在客戶(hù)端(本地運(yùn)行,當(dāng)然有足夠的速度),但不用去安裝配置客戶(hù)端,也不用去考慮版本升級(jí)后對(duì)客戶(hù)端的維護(hù),這就是JWS提供給我們的好處之一。OK,下面我們就來(lái)看看如何玩轉(zhuǎn)JWS,本文僅用發(fā)布Application來(lái)做說(shuō)明。
  系統(tǒng)環(huán)境:Win2000PRofessional+Tomcat3.2.1+JDK1.3。
  
  一:JWS簡(jiǎn)介
  
  JWS主要用來(lái)通過(guò)網(wǎng)絡(luò)部署你的應(yīng)用程序,它具有安全、穩(wěn)定、易維護(hù)、易使用的特點(diǎn)。用戶(hù)訪問(wèn)用JWS部署應(yīng)用程序的站點(diǎn),下載發(fā)布的應(yīng)用程序,既可以在線運(yùn)行,也可以通過(guò)JWS的客戶(hù)端離線運(yùn)行已下載的應(yīng)用程序。對(duì)同一個(gè)應(yīng)用程序,在第一次運(yùn)行時(shí)下載,以后每次運(yùn)行時(shí),JWS的客戶(hù)端會(huì)自動(dòng)去探測(cè)是否有版本更新,有更新就自動(dòng)下載新版本,沒(méi)有更新就直接運(yùn)行本地當(dāng)前版本,所有的麻煩全由JWS去承擔(dān)。好,下面我們就一步一步來(lái)搭建JWS
  
  二:搭建支持JWS的Web站點(diǎn)
  
  第一步:你的Tomcat3.2.1已經(jīng)正常運(yùn)轉(zhuǎn)
  
  第二步:找到TomcatHOME/conf下的web.XML文件,在其中添加<mime-type>
  application/x-java-jnlp-file
  </mime-type>
  以支持JNLP文件。
  
  三:部署應(yīng)用程序
  
  第一步:開(kāi)發(fā)你希望發(fā)布的應(yīng)用程序
  
  第二步:把應(yīng)用程序及所用到的所有資源打成一個(gè)或多個(gè)jar包
  
  第三步:假如你的應(yīng)用程序不會(huì)用到任何運(yùn)行這個(gè)應(yīng)用程序的機(jī)器的本地資源,那么,你的應(yīng)用程序就可以部署了。
  
  第四步:假如你的應(yīng)用程序用到了運(yùn)行這個(gè)應(yīng)用程序的機(jī)器的本地資源,那么,你的應(yīng)用程序就必須先簽名然后才可以發(fā)布。
  
  第五步:如何給應(yīng)用程序簽名
  
  1:首先確保你已經(jīng)完全安裝了Java2的環(huán)境,有keytool工具,它位于J2SE SDk的bin目錄下。這一般不會(huì)有問(wèn)題。
  2:到Dos狀態(tài)下,進(jìn)入你需發(fā)布應(yīng)用程序的jar包所在的目錄,運(yùn)行下面這句話(huà)
  keytool -genkey -keystore myKeystore -alias jwstest
  它將會(huì)提示你輸入用戶(hù)名、密碼等,不用理它,按照提示隨便輸入即可,但一定要記住密碼。運(yùn)行結(jié)束它將會(huì)在當(dāng)前路徑下創(chuàng)建名為myKeystore的文件。
  3:假如你想察看一下剛才生成的myKeystore文件的內(nèi)容,可以使用下面這句話(huà):
  keytool -list -keystore myKeystore
  顯示出來(lái)應(yīng)該類(lèi)似如下:
  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:對(duì)你需發(fā)布應(yīng)用程序的jar包進(jìn)行簽名,運(yùn)行下面這句話(huà):
  jarsigner -keystore myKeystore yourtest.jar jwstest
  其中yourtest.jar是你的jar包名,你需要修改它,別的就不必修改了。運(yùn)行時(shí)會(huì)提示你輸入密碼,就是你剛才在生成myKeystore文件時(shí)設(shè)定的密碼。
  
  第六步:部署應(yīng)用程序的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:把已經(jīng)預(yù)備好的jar包拷入lib目錄下
  
  四:jsp頁(yè)面
  
  第一步:編寫(xiě)用于Web訪問(wèn)的頁(yè)面index.jsp如下:
  
  <%@page contentType="text/Html;charset=gb2312"%>
  <html>
  <title>JWS Test</title>
  <head>
  <SCRIPT LANGUAGE="javascript">
  function insertLink(url, name) {
  document.write("<a href=" + url + ">" + name + "</a><br><br>");
  }
  insertLink("http://你的ip:8080/ JWSTest /apps/JWSTest.jnlp"," JWSTest ");
  </SCRIPT>
  </head>
  <body>
  </body>
  </html>
  
  第二步:在jsp中添加檢測(cè)訪問(wèn)的客戶(hù)端是否已經(jīng)安裝了JWS的客戶(hù)端的代碼,示例如下:
  
  <%@page contentType="text/html;charset=gb2312"%>
  <html>
  <title> JWS Test </title>
  <head>
  <SCRIPT LANGUAGE="javascript">
  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("<a href=" + url + ">" + name + "</a><br><br>");
  } else {
  document.write("<a href=" + url + ">"+ name +"</a><br><br>");
  }
  }
  </SCRIPT>
  <SCRIPT LANGUAGE="VBScript">
  on error resume next
  If isIE = "true" Then
  If Not(IsObject(CreateObject("JavaWebStart.IsInstalled"))) Then
  javawsInstalled = 0
  Else
  javawsInstalled = 1
  End If
  End If
  </SCRIPT>
  <SCRIPT LANGUAGE="javascript">
  if(javawsInstalled){
  insertLink("http://你的IP:8080/ JWSTest /apps/JWSTest.jnlp"," JWSTest ");
  }else{
  //通知用戶(hù)要先安裝JWS的客戶(hù)端,你可以自己提供下載或是直接鏈接到Sun的JWS下載。
  //分為兩種,假如客戶(hù)端已經(jīng)安裝了Java運(yùn)行環(huán)境,則只要下載javaws-1_0_1_01-win-int.exe即可。
  //假如客戶(hù)端沒(méi)有安裝Java運(yùn)行環(huán)境,則要下載完整的javaws-1_0_1_01-win-int-rt.exe。
  }
  </SCRIPT>
  </head>
  <body>
  </body>
  </html>
  
  五:JNLP文件
  
  第一步:下面我們來(lái)編寫(xiě)JWS的核心配置文件JNLP,有了它,才能將以上各部分聯(lián)系起來(lái),真正讓JWS運(yùn)轉(zhuǎn)起來(lái)。JNLP文件符合標(biāo)準(zhǔn)的XML語(yǔ)法,實(shí)質(zhì)就是一個(gè)XML文件。當(dāng)然,編寫(xiě)它的最好方式是對(duì)已寫(xiě)好的JNLP進(jìn)行改寫(xiě)。JWSTest.jnlp示例如下:
  <?xml version="1.0" encoding="utf-8"?>
  <!-- JNLP File for SwingSet2 Demo Application -->
  <jnlp
  spec="1.0+"
  codebase="http://你的IP:8080/JWSTest/apps"
  href=" JWSTest.jnlp">
  <information>
  <title> JWS Test </title>
  <vendor>YOUR Name</vendor>
  <homepage href=" JWSTest.html"/>
  <description> JWS Test </description>
  <icon href="http://www.QQread.com/java/images/ JWSTest.jpg"/>
  <offline-allowed/>
  </information>
  <security>
  <all-permissions/>
  </security>
  <resources>
  <j2se version="1.3"/>
  <jar href="lib/ JWSTest.jar"/>
  </resources>
  <application-desc main-class="運(yùn)行啟動(dòng)的主類(lèi)"/>
  </jnlp>
  
  第二步:部分JNLP的要害語(yǔ)法
  <jnlp>元素
  spec:必須是1.0及以上版本,這里用1.0+,不需修改。
  codebase:資源的URL,是JNLP指向各連接的起始處,需自行修改。
  Href:JNLP文件相對(duì)codebase的存放位置,和JNLP文件的全名,需自行修改。
  <infomation>元素
  Title:發(fā)布的應(yīng)用程序簡(jiǎn)單標(biāo)題,需自行修改。
  Vendor:發(fā)行商信息,可以寫(xiě)上你的大名,需自行修改。
  Homepage:存放有關(guān)應(yīng)用程序的相關(guān)文檔的URL,如help文件等,可有可無(wú)。
  Description:對(duì)應(yīng)用程序的描述,可以有多對(duì)<description></description>,可有可無(wú)。
  Icon:用戶(hù)下載你的應(yīng)用程序后,在JWS里顯示的圖標(biāo)的URL,應(yīng)是gif或jpeg格式。需自行修改。
  Offline-allowed:選擇項(xiàng),答應(yīng)用戶(hù)離線運(yùn)行應(yīng)用程序,一般都會(huì)有,不用修改。
  <security>元素
  選擇項(xiàng),假如沒(méi)有指明<security>,默認(rèn)是不答應(yīng)應(yīng)用程序訪問(wèn)用戶(hù)的本地資源,即應(yīng)用程序是沙箱運(yùn)行。
  假如設(shè)定為<all-permissions/>,則表示答應(yīng)應(yīng)用程序訪問(wèn)用戶(hù)的本地資源。一般都會(huì)設(shè)定此值。
  <resource>元素
  <j2se version = 指定jdk版本>
  <jar href = 指定需發(fā)布的應(yīng)用程序的jar包存放的位置>
  <application-desc>元素
  main-class:應(yīng)用程序運(yùn)行啟動(dòng)的主類(lèi)
  <argument>:應(yīng)用程序運(yùn)行時(shí)的參數(shù),可以有多個(gè),每一個(gè)參數(shù)用一對(duì)<argument>參數(shù)</argument>。
  至此,你已經(jīng)完全構(gòu)建了運(yùn)轉(zhuǎn)JWS的各部件。
  
  六:完整發(fā)布和測(cè)試
  
  前面我們已經(jīng)預(yù)備好了需發(fā)布的應(yīng)用程序的jar包,也寫(xiě)好了用來(lái)訪問(wèn)的jsp文件和服務(wù)器端的核心jnlp文件。
  第一步:在JWSTest下新建目錄jsp。把index.jsp拷入jsp目錄。
  第二步:把jnlp文件直接拷入apps目錄下。
  第三步:在瀏覽器

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 柯坪县| 凤城市| 顺平县| 神农架林区| 孟州市| 阳城县| 双江| 九龙城区| 桦川县| 财经| 荆门市| 富阳市| 丹阳市| 贵阳市| 米林县| 永定县| 恩平市| 汝州市| 凤冈县| 辽中县| 邵阳县| 滦南县| 金山区| 淮南市| 洞口县| 中卫市| 弥渡县| 罗江县| 鹤庆县| 灵山县| 英山县| 贵港市| 苍山县| 永定县| 邯郸市| 宝山区| 磐安县| 莒南县| 洮南市| 长武县| 曲靖市|