<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 38,  comments - 22,  trackbacks - 0
    輕松玩轉Java Web Start

    Java 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文件,在其中添加<mime-type>
    application/x-java-jnlp-file
    </mime-type>
    以支持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如下:
    <%@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中添加檢測訪問的客戶端是否已經安裝了JWS的客戶端的代碼,示例如下:
    <%@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{
    //通知用戶要先安裝JWS的客戶端,你可以自己提供下載或是直接鏈接到Sun的JWS下載。
    //分為兩種,如果客戶端已經安裝了Java運行環境,則只要下載javaws-1_0_1_01-win-int.exe即可。
    //如果客戶端沒有安裝Java運行環境,則要下載完整的javaws-1_0_1_01-win-int-rt.exe。
    }
    </SCRIPT>
    </head>
    <body>
    </body>
    </html>
    五:JNLP文件
    第一步:下面我們來編寫JWS的核心配置文件JNLP,有了它,才能將以上各部分聯系起來,真正讓JWS運轉起來。JNLP文件符合標準的XML語法,實質就是一個XML文件。當然,編寫它的最好方式是對已寫好的JNLP進行改寫。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="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="運行啟動的主類"/>
    </jnlp>
    第二步:部分JNLP的關鍵語法
    <jnlp>元素
    spec:必須是1.0及以上版本,這里用1.0+,不需修改。
    codebase:資源的URL,是JNLP指向各連接的起始處,需自行修改。
    Href:JNLP文件相對codebase的存放位置,和JNLP文件的全名,需自行修改。
    <infomation>元素
    Title:發布的應用程序簡單標題,需自行修改。
    Vendor:發行商信息,可以寫上你的大名,需自行修改。
    Homepage:存放有關應用程序的相關文檔的URL,如help文件等,可有可無。
    Description:對應用程序的描述,可以有多對<description></description>,可有可無。
    Icon:用戶下載你的應用程序后,在JWS里顯示的圖標的URL,應是gif或jpeg格式。需自行修改。
    Offline-allowed:選擇項,允許用戶離線運行應用程序,一般都會有,不用修改。
    <security>元素
    選擇項,如果沒有指明<security>,默認是不允許應用程序訪問用戶的本地資源,即應用程序是沙箱運行。
    如果設定為<all-permissions/>,則表示允許應用程序訪問用戶的本地資源。一般都會設定此值。
    <resource>元素
    <j2se version = 指定jdk版本>
    <jar href = 指定需發布的應用程序的jar包存放的位置>
    <application-desc>元素
    main-class:應用程序運行啟動的主類
    <argument>:應用程序運行時的參數,可以有多個,每一個參數用一對<argument>參數</argument>。
    至此,你已經完全構建了運轉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。
    在其中添加<mime-type>
    application/x-java-jnlp-file
    </mime-type>
    以支持JNLP文件。
    問題二:不能下載資源或下載資源失敗
    解決辦法:請卸載JWS的客戶端,并將注冊表里有關JWS的項目都刪除,并確保program Files下的Java Web Start目錄已被刪除,然后,重裝JWS。
    問題三:下載資源中有未簽名文件
    解決辦法:1:確保所有的jar包及其他資源都進行過簽名。
    2:確保整個資源中,沒有中文的命名。好像簽名工具不支持中文命名的文件名,所以未簽到名。這可讓我郁悶了一下午哦。
    3:察看已經簽名的jar包中,meta-inf路徑下的jwstest.sf(jwstest是你在進行簽名時-alias后的命名)文件,他詳細的列出了所有已簽名的文件,以分析簽名失敗的原因。

    http://www.itpub.net/595150.html
    <?xml version="1.0" encoding="utf-8"?>
    <!-- JNLP File for SwingSet2 Demo Application -->
    <jnlp
    spec="1.0+"
    codebase="href=" JWSTest.jnlp">
    <information>
    <title> JWS Test </title>
    <vendor>YOUR Name</vendor>
    <description> JWS Test </description>
    <offline-allowed/>
    </information>
    <security>
    <all-permissions/>
    </security>
    <resources>
    <j2se version="1.4"/>
    <jar href="lib/xx.jar"/>
    </resources>
    <application-desc main-class="fullScreen.FullScreenTest"/>
    </jnlp>

    主站蜘蛛池模板: 色妞WWW精品免费视频| 91成人免费福利网站在线| 67194成手机免费观看| 久久亚洲一区二区| 你好老叔电影观看免费| 亚洲色欲久久久综合网东京热| 国产成人亚洲精品播放器下载| 国产精品四虎在线观看免费| 亚洲av成人片在线观看| 免费一级特黄特色大片在线| 一级成人a做片免费| 亚洲午夜未满十八勿入网站2| 中文字幕在线成人免费看| 亚洲AV无码精品色午夜果冻不卡| 无码av免费网站| 亚洲精品欧洲精品| 无码国产精品久久一区免费| 亚洲av日韩综合一区久热| 亚洲精品tv久久久久久久久久| 可以免费观看的毛片| 亚洲国产成人九九综合| 成年女人毛片免费播放人| 久久亚洲精品高潮综合色a片| 亚洲v国产v天堂a无码久久| aa级女人大片喷水视频免费| 国产天堂亚洲精品| 亚洲国产一区明星换脸| 久久久久成人片免费观看蜜芽| 亚洲情A成黄在线观看动漫软件| va亚洲va日韩不卡在线观看| 七次郎成人免费线路视频| 无码久久精品国产亚洲Av影片| 亚洲黄色免费网址| 国产成人亚洲精品91专区高清| 亚洲va久久久噜噜噜久久狠狠| 少妇高潮太爽了在线观看免费| 色老头综合免费视频| 亚洲精品自拍视频| 免费一级做a爰片性色毛片| 亚洲黄色免费观看| 九九久久精品国产免费看小说 |