一JNLP介紹:
JNLP是Java Web Start的核心。
在java開發的早期,重點被放在了客戶端開發。語言中對於applet和安全下載的支持對於萬維網(WWW)的發佈看上去是個不錯的主意。但是現實是java最大的成功在於服務器端,java的強大功能和適應性贏得了服務器端開發者的心。同時,客戶端的開發落後了。棘手的開發問題限制了applet的效用,開發者被迫轉向基於瀏覽器的瘦客戶端。 Java Network Launching Protocol (JNLP,java網絡加載協議) 承諾改變這個現狀。通過JCP(Java Community Process)的JSR-56的開發, JNLP解決了很多先前用java開發針對客戶端的功能的問題。一個JNLP客戶端是一個應用程序或者說服務,它可以從宿主於網絡的資源中加載應用程序。如果你使用JNLP打包一個應用程序,那麼一個JNLP客戶端能夠: o 爲該應用探測,安裝並且使用正確版本的JRE(java運行時環境) o 從瀏覽器或者桌面加載應用程序 o 當新版本的應用出現時自動下載最新的版本。 o 爲了加速啓動速度在本機緩存應用程序需要的類 o 可以作爲applet或者應用程序運行 o 在必要的情況下下載原始的庫 o 以安全的方式使用諸如文件系統這樣的本機資源 o 自動定位和加載外部依賴資源 二JNLP文件的具體說明 <?xml version="1.0" encoding="UTF-8"?> <!--codebase 屬性指出搜索應用程序資源的頂級URL,下面的icon/jar元素都是以這個URL爲基本.--> <jnlp codebase="http://127.0.0.1:8081/webstart"> <information> <!--在"開始"-"運行"菜單中輸入"javaws"或"javaws -viewer"啓動Web Start,會看到客戶端已經安裝的webstart應用程序--> <!--title :應用程序標題 vendor:供應商 title/vendor 元素必須,會顯示在用"javaws -viewer"命令 打開的應用程序緩存查看器(Java Application Cache Viewer)中--> <title>HelloWorld</title> <vendor>Lively Corporation</vendor> <description>HelloWorld Test Example for WebStart.</description> <!--homepage :存放有關應用程序的相關文檔的URL,如help文件等,僅僅是description作用--> <homepage href="http://127.0.0.1:8081/webstart/index.html"/> <!--icon 指定圖標會顯示在應用程序緩存查看器中, 在查看器中新建webstart快捷方式到桌面時也會顯示爲快捷方式圖標, 只支持GIF/JPEG格式,其它格式無效--> <icon href="./images/logo.jpg"/> <!--splash 在sun的文檔中提到會出現在webstart啓動時的閃屏中,不過可能由於速度問題,我沒有觀察到--> <icon kind="splash" href="./images/logo.jpg"/> <!-- 允許離線啓動,可以使用javaws -offline命令--> <offline-allowed/> </information> <resources> <!-- 指定客戶端需要安裝的j2se版本,下面指定爲1.5+, 如果版本是1.4,在鏈接此jnlp文件時會提示更新j2se版本--> <j2se version="1.5+"/> <!-- 指定要下載到本地的jar文件(注意,所有的文件都需要打包才能夠下載), 可以包含一些資源文件,如icons/configuration files,可以使用getResource方法取得--> <jar href="./jar/jws/helloworld.jar"/> </resources> <!--application-desc 必須,指定webstart啓動時執行jar文件中的哪個類--> <application-desc main-class="jws.HelloWorld"/> </jnlp> 三 JNLP部署應用 (1)編寫相關應用,打包成一系列jar; (2)根據jnlp文件說明修改相應的jnlp內容,修改相應的url和jar; (3)部署jnlp文件和jar到相應的web容器; (4)編寫訪問網頁,即可使用該應用〔亦可下載jnlp文件使用jws運行應用〕; 四 補充 如果jar需要訪問本地文件資源,需要爲你的jar文件簽名 先在命令行用keytool產生一個keystore文件. keytool -genkey -keystore you.keystore –alias youApp 命令行用jarsigner簽名,當然這時候需要生成keystore時的密碼 jarsigner -keystore you.keystore appTest.jar youApp 重新部署即可