生活随笔
收集整理的這篇文章主要介紹了
Java Web Start实例
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到教程。
JWS讓用戶可以下載服務(wù)器端的Java Application到本機(jī)運(yùn)行,并且沒(méi)有安裝、配置等繁瑣的操作 JWS的運(yùn)行原理:瀏覽器運(yùn)行Java Application的鏈接指向的不是程序本身,而是一個(gè)*.jnlp(Java Network Launching Protocol,java網(wǎng)絡(luò)加載協(xié)議 ),該文件包含了Java Application的一些配置信息。瀏覽器解讀這個(gè)文件的信息,將服務(wù)器端的Java Application下載到本機(jī)上,然后運(yùn)行。由于第一次運(yùn)行需要下載程序,所以運(yùn)行比較慢。第二次運(yùn)行只是檢查版本是否有沒(méi)有更新,如果沒(méi)有直接在本地運(yùn)行,如果更新則會(huì)自動(dòng)更新這個(gè)程序。
?
Java Web Start實(shí)例搭建
新建一個(gè)Java Project,命名為JavaWebStart
package jws;
import javax.swing.*;
public class HelloWord {
public static void main(String[] args) {SwingUtilities.invokeLater(
new Runnable() {
public void run() {JFrame jFrame =
new JFrame(
"HelloWorld" ); JLabel label =
new JLabel(
"Hello, world!" ); JPanel jPanel =
new JPanel(); jPanel.add(label); jFrame.add(jPanel); jFrame.pack(); jFrame.setSize(
400 ,
150 ); jFrame.setLocation(
400 ,
300 ); jFrame.setVisible(
true ); jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }});}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
打成可執(zhí)行的Jar包? JavaWebStart->Export->Runnable JAR file->選擇存放位置和jar名(如:C:\Users\Desktop\JavaWebStart:/HelloWorld.jar)和運(yùn)行的main方法所在的類(jws.HelloWord)->finish
數(shù)字簽名? 對(duì)打成可執(zhí)行文件的HelloWorld.jar包用下面的命令來(lái)簽名:? 1、到Dos狀態(tài)下,,進(jìn)入你們需發(fā)布應(yīng)用程序的jar包所在的目錄,運(yùn)行下面這句話:? keytool -genkey -keystore myKeystore -alias jwstest? (它們將會(huì)提示你們輸入用戶名、密碼等,,不用理它們,,按照提示隨便輸入即可,,但一定要記住密碼..運(yùn)行結(jié)束它們將會(huì)在當(dāng)前路徑下創(chuàng)建名為myKeystore(的)文件..)? 說(shuō)明:keytool是JDK自帶的一個(gè)用于數(shù)字簽名的工具。該語(yǔ)句的意思是生成一個(gè)證書(shū),并且其文件名是:myKeystore。? 2、用證用為應(yīng)用程序簽名? jarsigner -keystore myKeystore HelloWorld.jar jwstest? (其中HelloWorld.jar是你們(的)jar包名(這里就是HelloWorld.jar),你們需要修改它們,,別(的)就不必修改了..運(yùn)行時(shí)會(huì)提示你們輸入密碼,,就是你們剛才在生成myKeystore文件時(shí)設(shè)定(的)密碼..)
在tomcat的webapps文件夾下新建一個(gè)JavaWebStart文件夾,將HelloWorld.jar文件拷入到它里面。
在JavaWebStart的文件下創(chuàng)建一個(gè)helloWorld.jnlp文件。
<?xml version="1.0" encoding="UTF-8"?>
<!--codebase 屬性指出搜索應(yīng)用程序資源的頂級(jí)URL, 下面的icon/jar元素都是以這個(gè)URL為基本. -->
<jnlp codebase ="http://localhost:8080/JavaWebStart/" > <information > <!-- 在"開(kāi)始"-"運(yùn)行"菜單中輸入"javaws"或"javaws -viewer"啟動(dòng)Web Start, 會(huì)看到客戶端已經(jīng)安裝的webstart應(yīng)用程序 --> <!-- title:應(yīng)用程序標(biāo)題 vendor:供應(yīng)商;title/vendor元素是必須, 會(huì)顯示在用"javaws -viewer"命令打開(kāi)的應(yīng)用程序緩存查看器(Java Application Cache Viewer)中 --> <title > Hello World
</title > <vendor > Lively Corporation
</vendor > <description > HelloWorld Test Example
</description > <!--homepage :存放有關(guān)應(yīng)用程序的相關(guān)文檔的URL,如help文件等,僅僅是description作用--> <homepage href ="http://127.0.0.1:8080/JavaWebStart/index.html" mce_href ="http://127.0.0.1:8080/JavaWebStart/index.html" /> <!-- icon 指定圖標(biāo)會(huì)顯示在應(yīng)用程序緩存查看器中(作為java web應(yīng)用程序的圖標(biāo)),在查看器中新建JavaWebStart快捷方式到桌面時(shí)也會(huì)顯示為快捷方式圖標(biāo),只支持GIF/JPEG格式,其它格式無(wú)效 --> <icon kind ="splash" href ="images/Fish13.jpg" mce_href ="images/Fish13.jpg" /> <!-- 允許離線啟動(dòng),可以使用javaws -offline命令--> <offline-allowed /> </information > <resources > <!-- 指定客戶端需要安裝的j2se版本,下面指定為1.5,也可以用1.5+表示1.5版本以上的, 如果這里設(shè)置版本為1.5,而我機(jī)裝的是1.6(所以我這里設(shè)置為1.7也會(huì)出現(xiàn)后面的問(wèn)題),那么提示正在請(qǐng)求 JRE 1.5,過(guò)一段時(shí)間提示:無(wú)法啟用該應(yīng)用程序,提示手動(dòng)更新j2se版本 改為1.5+就可以用1.6的JRE來(lái)運(yùn)行它了 --> <j2se version ="1.5+" /> <!-- 指定要下載到本地的jar文件(注意,所有的文件都需要打包才能夠下載), 可以包含一些資源文件,如icons/configuration files,可以使用getResource方法取得 --> <jar href ="HelloWorld.jar" mce_href ="HelloWorld.jar" /> </resources > <!-- 此項(xiàng)是指開(kāi)放用戶本機(jī)的所有權(quán)限給應(yīng)用程序,這一項(xiàng)會(huì)導(dǎo)致彈出一個(gè)數(shù)字簽名對(duì)話框。--> <security > <all-permissions /> </security > <!--application-desc 必須,指定JavaWebStart啟動(dòng)時(shí)執(zhí)行jar文件中的哪個(gè)類--> <application-desc main-class ="jws.HelloWord" />
</jnlp >
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
<a href ="HelloWorld.jnlp" > Launch Application
</a >
啟動(dòng)Tomcat服務(wù)器,輸入http://localhost:8080/JavaWebStart/index.html然后點(diǎn)擊Launch Application。就可以訪問(wèn)HelloWorld.jnlp文件。服務(wù)器根據(jù)HelloWorld.jnlp文件來(lái)加載HelloWorld.jar文件,就可以在客戶端直接運(yùn)行服務(wù)器的資源,它工作過(guò)程是先將服務(wù)器資源下載到客戶機(jī),再運(yùn)行,每一次訪問(wèn)都會(huì)到服務(wù)器去看看可執(zhí)行jar包是否為最新的,本地若不是最新的就重新加載最新的,再運(yùn)行,保持資源的最新版本。 如果彈出應(yīng)用程序安全設(shè)置阻止(java應(yīng)用程序已被阻止的問(wèn)題并不是由于瀏覽器的安全設(shè)置所導(dǎo)致的,而是由于java應(yīng)用程序的安全設(shè)置所產(chǎn)生的,特別是在新版本的java中)解決的辦法是。在操作系統(tǒng)的控制面板中點(diǎn)擊程序,找到程序中Java,點(diǎn)擊進(jìn)入。Java控制面板中的安全選項(xiàng)卡里,點(diǎn)擊編輯站點(diǎn)列表。輸入需要訪問(wèn)還有java程序的頁(yè)面地址,點(diǎn)擊添加,忽略安全風(fēng)險(xiǎn),點(diǎn)擊繼續(xù)。再次在瀏覽器中運(yùn)行還有java的頁(yè)面時(shí),點(diǎn)擊運(yùn)行即可。
?
總結(jié)
以上是生活随笔 為你收集整理的Java Web Start实例 的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。