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

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

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

    咖啡伴侶

    呆在上海
    posts - 163, comments - 156, trackbacks - 0, articles - 2

    動態(tài) JNLP

    Posted on 2008-03-28 10:11 oathleo 閱讀(1724) 評論(2)  編輯  收藏 所屬分類: Java
    附件是客戶端代碼,做了一些改造。主要是清除一些模塊之間的關(guān)聯(lián),避免關(guān)聯(lián)下載。
    為了更快的啟動客戶端、最少的下載gui更新程序,我嘗試了如下做法:

    ?? 1. 個模塊分開打包。目前粒度是對各第三方j(luò)ar包、common目錄、gui下的個子目錄、gui目錄本身做了單獨打包、簽名、pack200;
    ?? 2. 設(shè)置各個包的下載策略。對于少數(shù)必須包,用eager;對于非必須包(例如各模塊包、itext包等),一律用lazy處理;
    ?? 3. 首次啟動客戶端,盡可能快、少下載包。目前可以只下載必要包(見后續(xù)列表,并且還有改進潛力)。目前可以做到LoginUI出現(xiàn)時,不下載任何業(yè)務(wù)模塊。
    ?? 4. 由于MainUI關(guān)聯(lián)了不少各模塊的東西(例如工具欄上有一些業(yè)務(wù)模塊的快捷入口),啟動程序時候應(yīng)當避免加載MainUI類。所以,改造XXX的main函數(shù)到Main.java中,而不再放在MainUI中;
    ?? 5. 通過觀察以前代碼jnlp的jar加載發(fā)現(xiàn),login界面出來時候eng包竟然已經(jīng)被加載。調(diào)試發(fā)現(xiàn)ClientInitialize類中調(diào)用了PartType數(shù)量。必要性不大,去掉之;
    ?? 6. 啟動MainUI,什么也沒動的情況下,發(fā)現(xiàn)幾乎所有業(yè)務(wù)模塊jar都被加載。原因是:MainUIActionManager里面的clear方法在清除緩存時候,用硬編碼調(diào)用各個模塊的類的靜態(tài)方法進行clear,導(dǎo)致這些jar包全都被加載。做如下改造:在MainUIActionManager中做一個map存儲所有待清除類,用類名和方法名記錄clear cache的方法;各個具體模塊的類如果有需要logout被清除的,在類的開始處用static代碼段調(diào)用 MainUIActionManager.registerClearCache來注冊自己。這樣,MainUIActionManager就不必知道每個被清除者,誰注冊誰會被回調(diào)。這里的缺點是:由于這些clear方法都是static的,無法用接口來定義,java沒有abstract static這樣的概念,這里只能用反射,有一定的出錯概率。經(jīng)過這個改造,mainUI啟動后,業(yè)務(wù)模塊大多沒有l(wèi)oad,只有eng、sales和 manage來死活在上面。
    ?? 7. 繼續(xù)研究eng模塊jar包總是被加載。發(fā)現(xiàn)原因是:默認進來的HomePage就是PartHomePage。這個看來沒招了。不過sales和manage還要研究。
    ?? 8. 繼續(xù)發(fā)現(xiàn):part首頁出現(xiàn)后,sales模塊總是被加載。后來發(fā)現(xiàn)是AbstractHomePage類中的addInfoCenterTab方法中,竟然用SalesUtil.getString獲得tab的title字符串。去掉,sales模塊不再加載。
    ?? 9. 繼續(xù)發(fā)現(xiàn):part首頁出現(xiàn)后,manage模塊jar總是被加載。后來發(fā)現(xiàn),part首頁的infoCenter要顯示InfoCenter的UI,而這些類是在manage包內(nèi)定義的。抽出來放在eng模塊,讓manage引用eng模塊。manage模塊不再被加載。

    通過以上改造,首次運行XXX,到LoginUI顯示時,加載的XXX的包如下:
    XXX-base.jar
    XXX-common.jar
    XXX-gui.jar
    XXX-i18n.jar
    XXX-image.jar
    XXX-server.jar
    XXX-swing.jar
    org.jar
    第三方包有:
    commons-lang.jar
    jbossall-client.jar
    looks-1.3.1.jar
    twaver.jar
    總計大小:3.439m。而且應(yīng)當還有改進潛力。
    點擊login到進入MainUI,期間被加載的包有:
    XXX-comany
    XXX-conf
    XXX-message
    XXX-print
    XXX-security
    總計大小(包含前面加載的):3.995m
    如果點擊樹將各個模塊觸發(fā)全部jar下載,累計總計大小:7.116m
    以后:

    ??? * 如果某個業(yè)務(wù)模塊被具體更新:從雙擊jnlp到MainUI顯示出來未做任何動作之前,沒有任何下載產(chǎn)生(相當于直接啟動);點擊對應(yīng)的模塊樹會觸發(fā)下載,但一般模塊包的jar包都在1m以下,相當于下載一個新聞網(wǎng)頁,略感延遲但不明顯;只要下載服務(wù)器和客戶端網(wǎng)絡(luò)較好,基本感覺不到更新;
    ??? * 如果客戶端基本包(包括common、gui包、image、base、swing等)被更新,雙擊jnlp會觸發(fā)進度條進行下載更新,不過會提示,用戶可以選擇;這是因為在jnlp中做了如下設(shè)置:<update check="background" policy="prompt-update"/>,用戶可以選擇不更新而啟動客戶端(當然這樣風險相當大);
    ??? * 如果第三方包被更新:同上。

    附件的jnlp文件是新版本,可以看一下。為了方便管理眾多gz和jar文件,將所有壓縮包放入webstart/jars目錄下,上層目錄只留下index.htm和jnlp文件。
    附件中的bat文件,可以將class文件進行打包、repack、簽名、pack200壓縮、生成對應(yīng)的空jar文件、move到j(luò)boss目錄,一次搞定(使用前需要修改一下里面的目錄)。
    <?xml version="1.0" encoding="utf-8"?>
    <jnlp
    spec="1.0+"
    codebase="http://192.168.1.100:8080/webstart/"
    href="XXX.jnlp">
    <information>
    ????? <title>2BizBox v2</title>
    ???????? <vendor>SERVA Software</vendor>
    ???????? <homepage />
    ???????? <description>XXX</description>
    ???????? <description kind="short">SERVA Software 2BizBox 2.0.</description>
    ???????? <offline-allowed/>
    </information>
    <security>
    ?? <all-permissions/>
    </security>
    <update check="background" policy="prompt-update"/>
    <resources>
    ?? <j2se version="1.5+" initial-heap-size="128m" max-heap-size="512m"/>
    ?? <jar href="jars/XXX-common.jar" part="XXX-common" download="eager"/>
    ?? <jar href="jars/XXX-gui.jar" part="XXX-gui" download="eager" main="true"/>
    ?? <jar href="jars/org.jar" part="XXX-gui" download="eager"/>?
    ?
    ?? <!-- 2bizbox lazy modules -->
    ?
    ?? <jar href="jars/XXX-acc.jar" part="XXX-acc" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.acc.*" part="XXX-acc" recursive="true"/>
    ?? <jar href="jars/XXX-addr.jar" part="XXX-addr" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.addr.*" part="XXX-addr" recursive="true"/>
    ?? <jar href="jars/XXX-base.jar" part="XXX-base" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.base.*" part="XXX-base" recursive="true"/>
    ?? <jar href="jars/XXX-chart.jar" part="XXX-chart" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.chart.*" part="XXX-chart" recursive="true"/>
    ?? <jar href="jars/XXX-company.jar" part="XXX-company" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.company.*" part="XXX-company" recursive="true"/>
    ?? <jar href="jars/XXX-conf.jar" part="XXX-conf" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.conf.*" part="XXX-conf" recursive="true"/>
    ?? <jar href="jars/XXX-cs.jar" part="XXX-cs" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.cs.*" part="XXX-cs" recursive="true"/>
    ?? <jar href="jars/XXX-dev.jar" part="XXX-dev" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.dev.*" part="XXX-dev" recursive="true"/>
    ?? <jar href="jars/XXX-doc.jar" part="XXX-doc" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.doc.*" part="XXX-doc" recursive="true"/>
    ?? <jar href="jars/XXX-eng.jar" part="XXX-eng" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.eng.*" part="XXX-eng" recursive="true"/>
    ?? <jar href="jars/XXX-hr.jar" part="XXX-hr" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.hr.*" part="XXX-hr" recursive="true"/>
    ?? <jar href="jars/XXX-i18n.jar" part="XXX-i18n" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.i18n.*" part="XXX-i18n" recursive="true"/>
    ?? <jar href="jars/XXX-images.jar" part="XXX-images" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.images.*" part="XXX-images" recursive="true"/>
    ?? <jar href="jars/XXX-log.jar" part="XXX-log" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.log.*" part="XXX-log" recursive="true"/>
    ?? <jar href="jars/XXX-man.jar" part="XXX-man" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.man.*" part="XXX-man" recursive="true"/>
    ?? <jar href="jars/XXX-manage.jar" part="XXX-manage" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.manage.*" part="XXX-manage" recursive="true"/>
    ?? <jar href="jars/XXX-message.jar" part="XXX-message" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.message.*" part="XXX-message" recursive="true"/>
    ?? <jar href="jars/XXX-plan.jar" part="XXX-plan" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.plan.*" part="XXX-plan" recursive="true"/>
    ?? <jar href="jars/XXX-print.jar" part="XXX-print" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.print.*" part="XXX-print" recursive="true"/>
    ?? <jar href="jars/XXX-pur.jar" part="XXX-pur" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.pur.*" part="XXX-pur" recursive="true"/>
    ?? <jar href="jars/XXX-quality.jar" part="XXX-quality" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.quality.*" part="XXX-quality" recursive="true"/>
    ?? <jar href="jars/XXX-rule.jar" part="XXX-rule" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.rule.*" part="XXX-rule" recursive="true"/>
    ?? <jar href="jars/XXX-sales.jar" part="XXX-sales" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.sales.*" part="XXX-sales" recursive="true"/>
    ?? <jar href="jars/XXX-security.jar" part="XXX-security" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.security.*" part="XXX-security" recursive="true"/>
    ?? <jar href="jars/XXX-server.jar" part="XXX-server" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.server.*" part="XXX-server" recursive="true"/>
    ?? <jar href="jars/XXX-swing.jar" part="XXX-swing" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.swing.*" part="XXX-swing" recursive="true"/>
    ?? <jar href="jars/XXX-tools.jar" part="XXX-tools" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.tools.*" part="XXX-tools" recursive="true"/>
    ?? <jar href="jars/XXX-ware.jar" part="XXX-ware" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.ware.*" part="XXX-ware" recursive="true"/>
    ?? <jar href="jars/XXX-wo.jar" part="XXX-wo" download="lazy"/>
    ?? <package name="com.serva.XXX.gui.wo.*" part="XXX-wo" recursive="true"/>

    ?? <!-- all third party components -->
    ?? <jar href="jars/looks-1.3.1.jar" download="eager"/>
    ?? <jar href="jars/jbossall-client.jar" download="eager"/>
    ?? <jar href="jars/commons-lang-1.0.1.jar" download="eager"/>
    ?? <jar href="jars/itext-1.4.4.jar" part="itext" download="lazy"/>
    ?? <jar href="jars/iTextAsian.jar" part="itext" download="lazy"/>
    ?? <package name="com.lowagie.*" part="itext" recursive="true"/>
    ?
    ?? <jar href="jars/twaver.jar" part="twaver" download="lazy"/>
    ?? <package name="twaver.*" part="twaver" recursive="true"/>
    ?? <jar href="jars/jxl.jar" part="jxl" download="lazy"/>?
    ?? <package name="jxl.*" part="jxl" recursive="true"/>
    ?? <jar href="jars/barbecue.jar" part="barbecue" download="lazy"/>
    ?? <package name="net.sourceforge.barbecue.*" part="barbecue" recursive="true"/>
    </resources>
    <application-desc main-class="com.serva.XXX.gui.Main">
    ?? <argument>localhost</argument>
    </application-desc>
    </jnlp>
    pack.bat
    cd classes
    del /q *.jar
    cd ..
    rmdir -Q jars-gui
    mkdir jars-gui
    cd classes
    jar -cf XXX-common.jar com/serva/XXX/common
    jar -cf XXX-gui.jar com/serva/XXX/gui/*.class com/serva/XXX/gui/*.dat
    jar -cf XXX-acc.jar com/serva/XXX/gui/acc
    jar -cf XXX-addr.jar com/serva/XXX/gui/addr
    jar -cf XXX-base.jar com/serva/XXX/gui/base
    jar -cf XXX-chart.jar com/serva/XXX/gui/chart
    jar -cf XXX-company.jar com/serva/XXX/gui/company
    jar -cf XXX-conf.jar com/serva/XXX/gui/conf
    jar -cf XXX-cs.jar com/serva/XXX/gui/cs
    jar -cf XXX-dev.jar com/serva/XXX/gui/dev
    jar -cf XXX-doc.jar com/serva/XXX/gui/doc
    jar -cf XXX-eng.jar com/serva/XXX/gui/eng
    jar -cf XXX-hr.jar com/serva/XXX/gui/hr
    jar -cf XXX-i18n.jar com/serva/XXX/gui/i18n
    jar -cf XXX-images.jar com/serva/XXX/gui/images
    jar -cf XXX-log.jar com/serva/XXX/gui/log
    jar -cf XXX-man.jar com/serva/XXX/gui/man
    jar -cf XXX-manage.jar com/serva/XXX/gui/manage
    jar -cf XXX-message.jar com/serva/XXX/gui/message
    jar -cf XXX-plan.jar com/serva/XXX/gui/plan
    jar -cf XXX-print.jar com/serva/XXX/gui/print
    jar -cf XXX-pur.jar com/serva/XXX/gui/pur
    jar -cf XXX-quality.jar com/serva/XXX/gui/quality
    jar -cf XXX-rule.jar com/serva/XXX/gui/rule
    jar -cf XXX-sales.jar com/serva/XXX/gui/sales
    jar -cf XXX-security.jar com/serva/XXX/gui/security
    jar -cf XXX-server.jar com/serva/XXX/gui/server
    jar -cf XXX-swing.jar com/serva/XXX/gui/swing
    jar -cf XXX-tools.jar com/serva/XXX/gui/tools
    jar -cf XXX-ware.jar com/serva/XXX/gui/ware
    jar -cf XXX-wo.jar com/serva/XXX/gui/wo
    pack200 --repack XXX-common.jar????????????????????????
    pack200 --repack XXX-gui.jar????????????????????????
    pack200 --repack XXX-acc.jar????????????????????????
    pack200 --repack XXX-addr.jar????????????????????????
    pack200 --repack XXX-base.jar????????????????????????
    pack200 --repack XXX-chart.jar????????????????????????
    pack200 --repack XXX-company.jar????????????????????????
    pack200 --repack XXX-conf.jar????????????????????????
    pack200 --repack XXX-cs.jar???????????????????????
    pack200 --repack XXX-dev.jar????????????????????????
    pack200 --repack XXX-doc.jar????????????????????????
    pack200 --repack XXX-eng.jar???????????????????????
    pack200 --repack XXX-hr.jar????????????????????????
    pack200 --repack XXX-i18n.jar????????????????????????
    pack200 --repack XXX-images.jar???????????????????????
    pack200 --repack XXX-log.jar???????????????????
    pack200 --repack XXX-man.jar??????????????????????
    pack200 --repack XXX-manage.jar????????????????????
    pack200 --repack XXX-message.jar?????????????????????
    pack200 --repack XXX-plan.jar?????????????????????????
    pack200 --repack XXX-print.jar???????????????????????
    pack200 --repack XXX-pur.jar?????????????????????
    pack200 --repack XXX-quality.jar????????????????????
    pack200 --repack XXX-rule.jar???????????????????
    pack200 --repack XXX-sales.jar????????????????????
    pack200 --repack XXX-security.jar???????????
    pack200 --repack XXX-server.jar????????????????????
    pack200 --repack XXX-swing.jar??????????????????????
    pack200 --repack XXX-tools.jar??????????????????????
    pack200 --repack XXX-ware.jar?????????????????????
    pack200 --repack XXX-wo.jar????????????????
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-common.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-gui.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-acc.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-addr.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-base.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-chart.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-company.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-conf.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-cs.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-dev.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-doc.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-eng.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-hr.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-i18n.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-images.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-log.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-man.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-manage.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-message.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-plan.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-print.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-pur.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-quality.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-rule.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-sales.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-security.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-server.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-swing.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-tools.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-ware.jar XXX
    jarsigner -keystore ../myKeystore -storepass servasoft XXX-wo.jar XXX
    pack200 XXX-common.jar.pack.gz XXX-common.jar
    pack200 XXX-gui.jar.pack.gz XXX-gui.jar
    pack200 XXX-acc.jar.pack.gz XXX-acc.jar
    pack200 XXX-addr.jar.pack.gz XXX-addr.jar
    pack200 XXX-base.jar.pack.gz XXX-base.jar
    pack200 XXX-chart.jar.pack.gz XXX-chart.jar
    pack200 XXX-company.jar.pack.gz XXX-company.jar
    pack200 XXX-conf.jar.pack.gz XXX-conf.jar
    pack200 XXX-cs.jar.pack.gz XXX-cs.jar
    pack200 XXX-dev.jar.pack.gz XXX-dev.jar
    pack200 XXX-doc.jar.pack.gz XXX-doc.jar
    pack200 XXX-eng.jar.pack.gz XXX-eng.jar
    pack200 XXX-hr.jar.pack.gz XXX-hr.jar
    pack200 XXX-i18n.jar.pack.gz XXX-i18n.jar
    pack200 XXX-images.jar.pack.gz XXX-images.jar
    pack200 XXX-log.jar.pack.gz XXX-log.jar
    pack200 XXX-man.jar.pack.gz XXX-man.jar
    pack200 XXX-manage.jar.pack.gz XXX-manage.jar
    pack200 XXX-message.jar.pack.gz XXX-message.jar
    pack200 XXX-plan.jar.pack.gz XXX-plan.jar
    pack200 XXX-print.jar.pack.gz XXX-print.jar
    pack200 XXX-pur.jar.pack.gz XXX-pur.jar
    pack200 XXX-quality.jar.pack.gz XXX-quality.jar
    pack200 XXX-rule.jar.pack.gz XXX-rule.jar
    pack200 XXX-sales.jar.pack.gz XXX-sales.jar
    pack200 XXX-security.jar.pack.gz XXX-security.jar
    pack200 XXX-server.jar.pack.gz XXX-server.jar
    pack200 XXX-swing.jar.pack.gz XXX-swing.jar
    pack200 XXX-tools.jar.pack.gz XXX-tools.jar
    pack200 XXX-ware.jar.pack.gz XXX-ware.jar
    pack200 XXX-wo.jar.pack.gz XXX-wo.jar
    del /q *.jar
    move *.gz ../jars-gui
    cd ../jars-gui
    echo nothing > XXX-common.jar????????????????????????
    echo nothing > XXX-gui.jar????????????????????????
    echo nothing > XXX-acc.jar????????????????????????
    echo nothing > XXX-addr.jar????????????????????????
    echo nothing > XXX-base.jar????????????????????????
    echo nothing > XXX-chart.jar????????????????????????
    echo nothing > XXX-company.jar????????????????????????
    echo nothing > XXX-conf.jar????????????????????????
    echo nothing > XXX-cs.jar???????????????????????
    echo nothing > XXX-dev.jar????????????????????????
    echo nothing > XXX-doc.jar????????????????????????
    echo nothing > XXX-eng.jar???????????????????????
    echo nothing > XXX-hr.jar????????????????????????
    echo nothing > XXX-i18n.jar????????????????????????
    echo nothing > XXX-images.jar???????????????????????
    echo nothing > XXX-log.jar???????????????????
    echo nothing > XXX-man.jar??????????????????????
    echo nothing > XXX-manage.jar????????????????????
    echo nothing > XXX-message.jar?????????????????????
    echo nothing > XXX-plan.jar?????????????????????????
    echo nothing > XXX-print.jar???????????????????????
    echo nothing > XXX-pur.jar?????????????????????
    echo nothing > XXX-quality.jar????????????????????
    echo nothing > XXX-rule.jar???????????????????
    echo nothing > XXX-sales.jar????????????????????
    echo nothing > XXX-security.jar???????????
    echo nothing > XXX-server.jar????????????????????
    echo nothing > XXX-swing.jar??????????????????????
    echo nothing > XXX-tools.jar??????????????????????
    echo nothing > XXX-ware.jar?????????????????????
    echo nothing > XXX-wo.jar?????
    del -Q C:\jboss-4.0.5\server\default\deploy\webstart.war\jars\XXX-*.*
    move *.* C:\jboss-4.0.5\server\default\deploy\webstart.war\jars
    cd ..
    rmdir -Q jars-gui

    Feedback

    # re: 動態(tài) JNLP  回復(fù)  更多評論   

    2008-06-15 23:10 by zhangzhenya
    你好,我想了解一下2bizbox ,請問你有源碼嗎?

    # re: 動態(tài) JNLP  回復(fù)  更多評論   

    2008-06-17 12:42 by LeoOath
    商業(yè)軟件:)
    主站蜘蛛池模板: 国产gav成人免费播放视频| 国产乱子精品免费视观看片| 日韩a在线观看免费观看| 亚洲另类图片另类电影| 91精品免费不卡在线观看| 久久精品国产精品亚洲色婷婷 | 亚洲一区精品无码| 亚洲日韩国产精品乱-久| 波多野结衣中文字幕免费视频| 在线观看日本免费a∨视频| 亚洲精品一卡2卡3卡三卡四卡| 一区二区三区免费在线视频| 日韩免费视频播放| 国产精品亚洲色图| 免费在线看片网站| 女人裸身j部免费视频无遮挡| 国产精品免费高清在线观看 | 免费看又爽又黄禁片视频1000| 亚洲综合亚洲综合网成人| jizz在线免费播放| 精品久久香蕉国产线看观看亚洲 | 国产精品亚洲专区在线播放| 卡一卡二卡三在线入口免费| 日韩亚洲综合精品国产| 久久激情亚洲精品无码?V| 成人片黄网站色大片免费观看APP| 暖暖免费高清日本中文| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 中文字幕在线观看亚洲| 免费看黄视频网站| 亚洲精品国精品久久99热一| 人人揉揉香蕉大免费不卡| 日本一卡精品视频免费| 亚洲XX00视频| 中国china体内裑精亚洲日本| 在线观看亚洲AV日韩AV| 免费中文字幕不卡视频| 羞羞漫画在线成人漫画阅读免费 | 亚洲综合一区二区| 国产亚洲精品资源在线26u| 免费a级黄色毛片|