国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
利用 Java Web Start發(fā)布你用java程序

 

前言:
關(guān)于 JWS
JWS 是作為 JSR-56 的一部分而創(chuàng)建的,目的是提供一種方法來分發(fā)在客戶端上的 JVM 中運行的 Java 應(yīng)用程序。JWS 包括以下特征:

部署
    運行 JWS 應(yīng)用程序包括選擇 HTML 鏈接,與打開新的頁面沒有什么區(qū)別,惟一的不同之處在于 Web 服務(wù)器頁面是 .jnlp 文件,該文件啟動 JWS 插件來在客戶端上本地下載和執(zhí)行應(yīng)用程序。
緩存
    一旦應(yīng)用程序下載完畢,就可以把它緩存在客戶端電腦上。每當(dāng)應(yīng)用程序重新啟動時,JWS 就檢查服務(wù)器,查看是否有更新的版本要下載。如果沒有,就運行本地的版本,從而避免再次下載。如果存在一個新的版本,就自動檢索新的版本,因此管理員從來就不必?fù)?dān)心舊的客戶端連接到已更新的服務(wù)器程序 API 上。
獨立于瀏覽器 JRE
    JWS 允許您精確地指定您想在什么客戶端 JRE 級別中運行它(獨立于瀏覽器是如何配置的)。這一特征避免了 Applet 標(biāo)記和瀏覽器 JRE 級別的問題(比如用 Microsoft Internet Explorer)。與 Applet 標(biāo)記共享單一的用于瀏覽器的 JVM 實例不同,每個 JWS 應(yīng)用程序都有自己獨立的 JVM,并通過它自己的 main(String[] args) 方法啟動。
安全性驗證
    Java 安全性模型用于驗證 JWS 應(yīng)用程序的來源并限制對易受攻擊的系統(tǒng)服務(wù)(比如 I/O 和通信)的訪問。 必須通過認(rèn)證已簽署的 JAR 文件來授予每個 JWS 程序顯式訪問這些服務(wù)的權(quán)限。
桌面集成
    一旦 JWS 應(yīng)用程序從 .jnlp 文件下載完畢,就可以把它集成在桌面上作為獨立的圖標(biāo)。這樣該應(yīng)用程序就可以重新啟動而不用通過 Web 瀏覽器。

如果您有 JRE 1.4.1 或更新的版本,那么您已經(jīng)安裝了 Java Web Start 。如果您沒有 JRE 1.4.1 或更新的版本,可以從 Sun 下載頁面下載并安裝 JRE。

與介紹 GUI 編程的新方法的文章的傳統(tǒng)一樣,第一步是創(chuàng)建 Web 啟動應(yīng)用程序,它顯示帶有“Hello World”的對話框:這分兩步進(jìn)行:首先創(chuàng)建類并將其部署在 Web 服務(wù)器中,接著客戶端個人計算機(jī)訪問該 URL,這樣就可以通過 JWS 下載和調(diào)用它。
Sun 提供了一個實現(xiàn)JNLP的稱為Java Web Start(JWS)的參考實現(xiàn)。讓我們使用它開發(fā)一個使用JFC Swing的簡單應(yīng)用。為了做這個,你需要從http://java.sun.com/products/javawebstart下載JWS。(譯者注:JDK的新版本JDK1.4已經(jīng)內(nèi)置JWS,無須另外下載。)

操作步驟:
一.一般的應(yīng)用發(fā)布
1)創(chuàng)建要發(fā)布的應(yīng)用程序;
創(chuàng)建例子文件HelloJNLP.java 文件
//------------------------------------------------------
/*
 * Created on 2004-11-10
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 * @author Jackey
 *
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
//File HelloJNLP.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class HelloJNLP extends JFrame {
    public HelloJNLP() {
        super("Hello JNLP");
        String loadedFrom = this.getClass().getClassLoader().toString();
        JLabel jl = new JLabel("loaded by " + loadedFrom);
        JEditorPane jtp = new JEditorPane("text/plain", "Edit this text ");
        try {
            jtp.setPage("
http://127.0.0.1:8080/");
        } catch (Exception e) {
            // TODO: handle exception
            System.err.println("Error: "+e.getMessage() );
        }
       
        getContentPane().add(jl, BorderLayout.NORTH);
        getContentPane().add(jtp, BorderLayout.CENTER);
    }

    public static void main(String[] args) {
        JFrame f = new HelloJNLP();
        f.setBounds(100, 100, 325, 250);
        f.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        f.setVisible(true);
        f.addWindowListener(new WindowAdapter() {
            public void windowClosed(WindowEvent e) {
                System.out.println("Shutting down...");
                System.exit(0);
            }
        });
    }
}
//------------------------------------------------------
2)編譯和打包成.jar文件;
d:>javac HelloJNLP.java

D:\eclipse\workspace\jnlp\bin 的目錄

2004-11-10  09:49       <DIR>          .
2004-11-10  09:49       <DIR>          ..
2004-11-10  14:49                1,889 HelloJNLP.class
2004-11-10  14:49                  651 HelloJNLP$1.class
2004-11-10  12:57                2,091 HelloJNLP.jar
2004-11-10  10:32                  422 HelloJNLP.jnlp
2004-11-10  13:53                  178 index.html
2004-11-10  14:45                1,211 joestore
2004-11-10  14:46                3,403 sHelloJNLP.jar
               7 個文件          9,845 字節(jié)
               2 個目錄  3,277,553,664 可用字節(jié)

D:\eclipse\workspace\jnlp\bin>jar cvf HelloJNLP.jar *.class
標(biāo)明清單(manifest)
增加:HelloJNLP$1.class(讀入= 651) (寫出= 422)(壓縮了 35%)
增加:HelloJNLP.class(讀入= 1889) (寫出= 1079)(壓縮了 42%)

3)發(fā)表應(yīng)用到web server上
將生成的HelloJNLP.jar 文件copy到Tomcat的webapp目錄之下.
4)創(chuàng)建.jnlp文件;
使用文本編輯器來編輯一下內(nèi)容.保存HelloJNLP.jnlp文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- file Hello.jnlp -->
<jnlp codebase="
http://127.0.0.1:8080/" href="HelloJNLP.jnlp">
   <information>
    <title>Hello jackey</title>
    <vendor>jackey jiao Sample May 2004</vendor>
    <icon href="photo1.JPG"/>
  </information>
  <resources>
    <j2se version="1.2+"/>
    <jar href="sHelloJNLP.jar"/>
  </resources>
  <application-desc main-class="HelloJNLP"/>
</jnlp>
5)編輯html頁面
保存為index.html文件.
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>

<body>
<ul>
 <li><a href="HelloJNLP.jnlp">HelloJNLP</a>
 <li><a href="ShowDSB.jnlp">ShowDSB</a>
</ul>


</body>
</html>

6)啟動java web start


在java web start 應(yīng)用程序管理器的地址里輸入我們的web applicatoin 發(fā)布的地址
http://127.0.0.1:8080/index.html
運行成功!

二.有訪問外部資源的應(yīng)用發(fā)布


安全性:
一些 JWS 應(yīng)用程序可能希望訪問客戶端個人計算機(jī)上的服務(wù),比如 用于讀取和寫入文件或打開套接字
并進(jìn)行連接的 IO。為了安全性的目的,您不想惡意程序無限制地訪問您的個人計算機(jī)上的這些工具,為此,
JWS 使用 Java 安全性模型和 JAR 文件認(rèn)證。在缺省情況下,JWS 虛擬機(jī)是一個受限的沙箱(Sandbox),
它拒絕對這些服務(wù)的訪問。如果您試圖超出安全性管理器的許可,比如執(zhí)行一些文件 IO ,就會產(chǎn)生一個異常。
操作的步驟:
1)修改.jnlp文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- file Hello.jnlp -->
<jnlp codebase="   <information>
    <title>Hello jackey</title>
    <vendor>jackey jiao Sample May 2004</vendor>
    <icon href="photo1.JPG"/>
  </information>
 <security>
 <all-permissions/><!--加入安全權(quán)限-->
 </security>
  <resources>
    <j2se version="1.2+"/>
    <jar href="sHelloJNLP.jar"/><!--修改此處-->
  </resources>
  <application-desc main-class="HelloJNLP"/>
</jnlp>
2)創(chuàng)建簽署的.jar文件
為了簽署 JAR 文件,您可以使用 JDK 附帶的 keytool 命令,即使您將把您的
JWS 應(yīng)用程序放在完整的產(chǎn)品中,也還是推薦您從像 Thawte 或 VeriSign 這樣的結(jié)構(gòu)獲得認(rèn)證。

D:\eclipse\workspace\jnlp\bin>keytool -genkey -alias helloAlias -keypass wsddjws
 -keystore joestore -storepass richjavaclient
您的名字與姓氏是什么?
  [Unknown]:  Jackey
您的組織單位名稱是什么?
  [Unknown]:  wbx
您的組織名稱是什么?
  [Unknown]:  china
您所在的城市或區(qū)域名稱是什么?
  [Unknown]:  hz
您所在的州或省份名稱是什么?
  [Unknown]:  zj
該單位的兩字母國家代碼是什么
  [Unknown]:  cn
CN=Jackey, OU=wbx, O=china, L=hz, ST=zj, C=cn 正確嗎?
  [否]:  y


D:\eclipse\workspace\jnlp\bin>

D:\eclipse\workspace\jnlp\bin>jarsigner -keystore joestore -signedjar  sHelloJNL
P.jar HelloJNLP.jar helloAlias
Enter Passphrase for keystore: richjavaclient
Enter key password for helloAlias: wsddjws

D:\eclipse\workspace\jnlp\bin>
3)發(fā)布新的應(yīng)用
copy index.html 和 sHelloJNLP.jnlp文件我Tomcat下面.
運行的情況如圖.


結(jié)束語
本文展示了可以如何使用 Java Web Start 來分發(fā) WebSphere 中豐富的 Java 應(yīng)用程序,以便它們運行在客戶端個人計算機(jī)上。通過使用 .jnlp 文件來指定關(guān)于應(yīng)用程序的信息可以做到這一點。本文還展示了如何在客戶端個人計算機(jī)上緩存這些應(yīng)用程序以及可以如何以桌面快捷方式的形式安裝它們。當(dāng)應(yīng)用程序需要更新時,它是在服務(wù)器上的一個單獨的位置進(jìn)行更改的,因而所有的客戶端都可以根據(jù) .jnlp 文件的日期和時間戳在它們下一次連接時獲取新的副本。另外,本文展示了可以如何用 JnlpDownloadServet 來軟復(fù)制 jnlp 文件的代碼庫以及如何提供顯式的日期和時間戳,從而允許 .jnlp 文件在分布式環(huán)境中的 WebSphere 的多個副本之間復(fù)制,而同時作為單個程序定義出現(xiàn)在客戶端中。我們希望您會發(fā)現(xiàn) JWS 是一種強(qiáng)大而靈活的管理豐富的實際 Java 客戶端應(yīng)用程序的工具.



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=175896


[收藏到我的網(wǎng)摘]   Jackey發(fā)表于 2004年11月10日 15:34:00

相關(guān)文章:
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
使用 Java Web Ststar 部署基于 Eclipse 的應(yīng)用程序
Java Web Start入門基礎(chǔ)教程
三篇關(guān)于Java WebStart的文章
創(chuàng)建窗口與Applet
jenkins集群測試環(huán)境原理、部署及常見問題解決 (轉(zhuǎn))
最新分享
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服