熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

JAR進階

2013-11-15 11:49:18  來源: JSP教程 

  先對JAR作一下簡要介紹JAR是一種與平台無關的文檔格式全稱為Java Archive翻譯成中文叫Java 歸檔咋一看它相當於一種壓縮格式可以把眾多的文檔合成一個文件就象ZIPACE等但它所被賦予的能力遠不止這些
  首先它與平台無關並且兼容性好就是說不管是windows還是unix都是通吃甚至是IE和netscape之間的不兼容也能輕松化解這和java的精神是很相符合的
  再來它使用戶可將多個java小應用程序合並為一個文件作為單個的簡單 HTTP事務下載到浏覽器中從而大大提高浏覽速度這在越來越講究速度的www世界裡是很相當具有誘惑力的
  它還提供對applet作者的認證這只要對JAR進行數字簽名便可
  更為精彩的是如果浏覽器信任該認證那麼作為可信任的applet它便能訪問非信任的applet禁止訪問的資源如本地硬盤和網絡
  還有一個不似功能的優點背靠sun自然是好事天天有
  總而言之是優點多多前途無量從它的誕生開始它就在java的應用中的占著越來越重要的地位不久JAR將成為分布java applet的標准方法
  這麼好的東東是不是有些相見恨晚那現在便開始為JAR的進階准備一些工具當然必要的是jdk現在普遍用的版本是那麼就去下一個吧sun的主機太遠速度也一般般關鍵是e文的目錄又深國內有些網站也提供下載的速度也挺快在搜索引擎裡面查找一下便有一堆了最好是准備一個可視化的java編程環境在windows平台下推薦jbuilderInprise也就borland公司出的除開資源占得厲害有些垃圾代碼也挺不錯的至於jbuilder的下載也還是去搜索一下吧還有要對jbuilder熟悉一下裡面有jbuilder書籍下載有興趣就去下一個看看挺不錯的
  現在開始JAR的第一步jdk提供了jar的工具就在java所在目錄的bin目錄下有一個jarexe的應用程序可以試著新建一個jar文件
  jar cvf testjar *class image
  c參數表示在標准輸出上創建新歸檔或空歸檔
  v參數表示把添加了一些什麼的信息在標准輸出上顯示
  f 參數在這裡表示用什麼樣的jar文件名
  在jbuilder裡面新建一個JAR更加方便wizards菜單的archive builder一步步往下選就可以了
  為了更好的鑽研JAR就從在jbuilder做個applet開始吧做這樣一個東西在一個面板上有一個按鈕右鍵單擊按鈕將彈出一個菜單
  新建一個工程testjpr
  再新建一個applet appletJava
  接下來在面板上擺上一個javaawtbutton
  再擺上一個javaawtpopupMenu在popupMenu的編輯面板輸入幾個選項
  這樣控件擺完了接下來是寫相應的事件源程序如下
  package test;
  import javaawt*;
  import javaawtevent*;
  import javaapplet*;
  public class Applet extends Applet {
  boolean isStandalone = false;
  PopupMenu popupMenu = new PopupMenu();
  MenuItem menuItem = new MenuItem();
  MenuItem menuItem = new MenuItem();
  MenuItem menuItem = new MenuItem();
  Button button = new Button();
  /**Get a parameter value*/
  public String getParameter(String key String def) {
  return isStandalone ? SystemgetProperty(key def) :
  (getParameter(key) != null ? getParameter(key) : def);
  }
  /**Construct the applet*/
  public Applet() {
  }
  /**Initialize the applet*/
  public void init() {
  try {
  jbInit();
  }
  catch(Exception e) {
  eprintStackTrace();
  }
  }
  /**Component initialization*/
  private void jbInit() throws Exception {
  menuItemsetLabel();
  menuItemsetLabel();
  menuItemsetLabel();
  buttonsetLabel(button);
  file://這是button的監聽事件
  buttonaddMouseListener(new javaawteventMouseAdapter() {
  public void mousePressed(MouseEvent e) {
  button_mousePressed(e);
  }
  });
  popupMenuadd(menuItem);
  popupMenuadd(menuItem);
  popupMenuadd(menuItem);
  thisadd(button null);
  add(popupMenu);
  }
  /**Get Applet information*/
  public String getAppletInfo() {
  return Applet Information;
  }
  /**Get parameter info*/
  public String[][] getParameterInfo() {
  return null;
  }
  void button_mousePressed(MouseEvent e) {
  /*通過InputEventBUTTON_MASK對右鍵的判斷
  要判斷是左鍵用InputEventBUTTON_MASK
  */
  int mods=egetModifiers();
  if((mods&InputEventBUTTON_MASK)!=)
  {
  popupMenushow(buttonegetX()egetY());
  button
  }
  }
  }
  file://appletjava is over
  運行一下確實可以看到右鍵彈出了相應的菜單
  我們現在可以打包並發布了
  選擇wizards菜單的archive builder或者通過new 的archive builder來可視化的創建一個包含這個applet的JAR文件
  需要注意的幾點是
  archive type 選applet這個選項並不重要只是相當於通知一下接下來做的是一個applet的JAR文件包
  project class and resources選include required class and known resources 這句理解為待會兒生成的JAR文件包中包含被調用的類文件和需要使用到資源文件
  required classes and resources 需添加test的applet新建的JAR文件包默認情況下並不包含所應用到的applet的class文件需要在這裡進行添加有多少要用到的applet就應該在這裡都添加進去
  完成後會發現多出來一個applet的圖標在build後會在其下面多出來一個testjar在JAR的屬性欄裡是一樣可以添加和刪除applet的class文件的只是記得每次重新編譯了class文件後都要rebuild這個JAR文件這是為了讓JAR文件中的class也得到及時更新
  雙擊testjar會發現有兩個class文件Appletclass和Applet$class後者是用來存放鼠標監聽右鍵點擊事件的中間代碼的
  現在只是需要把它發布到浏覽器上就可以了
  在test目錄下新建l文件內容很簡單
  <APPLET code=testAppletclass archive=testjar></APPLET>
  相比之下要選擇發布這樣的class文件就必須把Appletclass和Applet$classl兩個文件同時放到一個目錄下面兩個文件還可以這樣照顧的了但一旦class文件數量增多了就會難免會出現個別文件丟失的情況使applet的應用產生錯誤
  打包成JAR也使整個applet成為一個事務就可以下載過來因此也減少了網絡開銷加快了下載的速度由此可見JAR文件格式的出現確實讓applet的應用進入了一個新的可持續發展的階段
  從上一篇看到的JAR的基本用法似乎並沒讓人有感覺到JAR的出現是給applet的應用帶來了一個新的開始但您也許看完了下面的就會對JAR稍有認同了
  
    很多試著在jbuilder裡做過applet的java愛好者都知道applet的界面布局是一個比較繁人的問題遠不是如VB裡面把控件放到界面上那麼簡單就算是用最高級的grid bag布局管理器要在上面擺多個控件也是需要調整又調整的而且就算是在jbuilder裡面還看得可以接受但換到浏覽器裡面也許又是另一個樣子了當然也有擺得好的當畢竟是需要時間和經驗的可是在jbuilder裡面如果對底板不選grid bag布局管理器而選XY布局那在上面擺控件就真的是一件很輕松的事情了令人遺憾的是XY布局所調用的類是comborlandjbcllayout下面的是由borland公司自己編寫的很顯然這樣編寫的applet是輕松了編寫痛苦了應用因為實在是無法讓僅僅認得jdk的IE去認識borland寫的類那麼就真的只有寫給自己看了嗎現在有了JAR你會發現如按下面的步驟來是可以很輕松的讓別人也看到你寫的包含非jdk標准類的applet
  
    我們在第一步寫的那界面上再添加幾個按鈕先把底板的布局由grid bag改變成xy再在上面添加幾個按鈕把按鈕的右擊事件也設置為彈出菜單以下是源程序在jbuilder生成的代碼上簡化一下去掉暫可不用的代碼和一些注釋但保證可以正常運行
  
  package test;
  import javaawt*;
  import javaawtevent*;
  import javaapplet*;
  import comborlandjbcllayout*;
  
  public class Applet extends Applet {
  boolean isStandalone = false;
  PopupMenu popupMenu = new PopupMenu();
  MenuItem menuItem = new MenuItem();
  MenuItem menuItem = new MenuItem();
  MenuItem menuItem = new MenuItem();
  Button button = new Button();
  XYLayout xYLayout = new XYLayout();/*面板改變為XYLayout布局使用的是非jdk標准類*/
  Button button = new Button();
  Button button = new Button();/*添加三個按鈕*/
  public void init() {
  menuItemsetLabel();
  menuItemsetLabel();
  menuItemsetLabel();
  buttonsetLabel(button);
  buttonaddMouseListener(new javaawteventMouseAdapter() {
  public void mousePressed(MouseEve
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19680.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.