亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JAR進階

2019-11-18 13:28:56
字體:
來源:轉載
供稿:網友

  先對JAR作一下簡要介紹,JAR是一種與平臺無關的文檔格式,全稱為java Archive,翻譯成中文叫Java 歸檔,咋一看,它相當于一種壓縮格式,可以把眾多的文檔合成一個文件,就象Zip,ACE等,但它所被賦予的能力遠不止這些,
  首先,它與平臺無關,并且兼容性好,就是說不管是windows,還是unix,都是通吃,甚至是IE和netscape之間的不兼容,也能輕松化解,這和java的精神是很相符合的。
  再來,它使用戶可將多個java小應用程序合并為一個文件作為單個的簡單 HTTP事務下載到瀏覽器中,從而大大提高瀏覽速度,這在越來越講究速度的www世界里是很相當具有誘惑力的。
  它還提供對applet作者的認證,這只要對JAR進行數字簽名便可。
  更為出色的是,假如瀏覽器信任該認證,那么作為可信任的applet,它便能訪問非信任的applet禁止訪問的資源,如本地硬盤和網絡。
  還有一個不似功能的優點,背靠sun,自然是好事天天有。
  總而言之是優點多多,前途無量,從它的誕生開始,它就在java的應用中的占著越來越重要的地位,不久JAR將成為分布java applet的標準方法。
  這么好的東東,是不是有些相見恨晚,那現在便開始為JAR的進階預備一些工具,當然必要的是jdk,現在普遍用的版本是1.3,那么就去下一個吧,sun的主機太遠,速度也一般般,要害是e文的,目錄又深。國內有些網站也提供下載的,速度也挺快,在搜索引擎里面查找一下便有一堆了。最好是預備一個可視化的java編程環境,在windows平臺下推薦jbuilder4,InPRise也就borland公司出的,除開資源占得厲害,有些垃圾代碼,也挺不錯的。至于jbuilder4的下載,也還是去搜索一下吧,還有要對jbuilder熟悉一下,www.94soft.com里面有jbuilder書籍下載,有愛好就去下一個看看,挺不錯的。
  現在開始JAR的第一步,jdk提供了jar的工具,就在java所在目錄的bin目錄下有一個jar.exe的應用程序,可以試著新建一個jar文件:
  jar cvf test1.jar *.class image
  c參數表示在標準輸出上創建新歸檔或空歸檔,
  v參數表示把添加了一些什么的信息在標準輸出上顯示,
  f 參數在這里表示用什么樣的jar文件名,
  在jbuilder里面新建一個JAR更加方便,wizards菜單的archive builder一步步往下選就可以了。
  為了更好的鉆研JAR,就從在jbuilder做個applet開始吧,做這樣一個東西,在一個面板上有一個按鈕,右鍵單擊按鈕將彈出一個菜單。
  新建一個工程test1.jpr
  再新建一個applet applet1.Java
  接下來在面板上擺上一個java.awt.button,
  再擺上一個java.awt.popupMenu,在popupMenu的編輯面板輸入幾個選項。
  這樣控件擺完了,接下來是寫相應的事件,源程序如下:
  package test1;
  import java.awt.*;
  import java.awt.event.*;
  import java.applet.*;
  public class Applet1 extends Applet {
  boolean isStandalone = false;
  PopupMenu popupMenu1 = new PopupMenu();
  MenuItem menuItem1 = new MenuItem();
  MenuItem menuItem2 = new MenuItem();
  MenuItem menuItem3 = new MenuItem();
  Button button1 = new Button();
  /**Get a parameter value*/
  public String getParameter(String key, String def) {
  return isStandalone ? System.getProperty(key, def) :
  (getParameter(key) != null ? getParameter(key) : def);
  }
  /**ConstrUCt the applet*/
  public Applet1() {
  }
  /**Initialize the applet*/
  public void init() {
  try {
  jbInit();
  }
  catch(Exception e) {
  e.printStackTrace();
  }
  }
  /**Component initialization*/
  private void jbInit() throws Exception {
  menuItem1.setLabel("1");
  menuItem2.setLabel("2");
  menuItem3.setLabel("3");
  button1.setLabel("button1");
  file://這是button1的監聽事件,
  button1.addMouseListener(new java.awt.event.MouseAdapter() {
  public void mousePressed(MouseEvent e) {
  button1_mousePressed(e);
  }
  });
  popupMenu1.add(menuItem1);
  popupMenu1.add(menuItem2);
  popupMenu1.add(menuItem3);
  this.add(button1, null);
  add(popupMenu1);
  }
  /**Get Applet information*/
  public String getAppletInfo() {
  return "Applet Information";
  }
  /**Get parameter info*/
  public String[][] getParameterInfo() {
  return null;
  }
  void button1_mousePressed(MouseEvent e) {
  /*通過InputEvent.BUTTON3_MASK對右鍵的判定
  要判定是左鍵用InputEvent.BUTTON1_MASK,
  */
  int mods=e.getModifiers();
  if((mods&InputEvent.BUTTON3_MASK)!=0)
  {
  popupMenu1.show(button1,e.getX(),e.getY());
  button
  }
  }
  }
  file://applet1.java is over
  運行一下,確實可以看到右鍵彈出了相應的菜單。
  我們現在可以打包并發布了.
  選擇wizards菜單的archive builder,或者通過new 的archive builder來可視化的創建一個包含這個applet的JAR文件。
  需要注重的幾點是,
  1.archive type 選applet,這個選項并不重要,只是相當于通知一下接下來做的是一個applet的JAR文件包
  2.project class and resources選include required class and known resources ,這句理解為待會兒生成的JAR文件包中包含被調用的類文件和需要使用到資源文件。
  3.required classes and resources 需添加test1的applet1,新建的JAR文件包默認情況下并不包含所應用到的applet的class文件,需要在這里進行添加,有多少要用到的applet,就應該在這里都添加進去
  完成后會發現多出來一個applet的圖標,在build后會在其下面多出來一個test1.jar,在JAR的屬性欄里是一樣可以添加和刪除applet的class文件的,只是記得每次重新編譯了class文件后都要rebuild這個JAR文件,這是為了讓JAR文件中的class也得到及時更新。
  雙擊test1.jar會發現有兩個class文件,Applet1.class和Applet1$1.class,后者是用來存放鼠標監聽,右鍵點擊事件的中間代碼的。
  現在只是需要把它發布到瀏覽器上就可以了。
  在test1目錄下新建applet1.Html文件,內容很簡單:
 ?。糀PPLET code=test1.Applet1.class archive="test1.jar"></APPLET>
  相比之下,要選擇發布這樣的class文件,就必須把Applet1.class和Applet1$1.classl兩個文件同時放到一個目錄下面,兩個文件還可以這樣照顧的了,但一旦class文件數量增多了,就會難免會出現個別文件丟失的情況,使applet的應用產生錯誤。
  打包成JAR也使整個applet成為一個事務就可以下載過來,因此也減少了網絡開銷,加快了下載的速度。由此可見,JAR文件格式的出現確實讓applet的應用進入了一個新的可持續發展的階段。
  從上一篇看到的JAR的基本用法,似乎并沒讓人有感覺到JAR的出現是給applet的應用帶來了一個新的開始。但您也許看完了下面的,就會對JAR稍有認同了。
  
    很多試著在jbuilder里做過applet的java愛好者都知道,applet的界面布局是一個比較繁人的問題,遠不是如VB里面把控件放到界面上那么簡單,就算是用最"高級"的grid bag布局治理器,要在上面擺多個控件也是需要調整又調整的,而且就算是在jbuilder里面還看得可以接受,但換到瀏覽器里面也許又是另一個樣子了,當然也有擺得好的,當究竟是需要時間和經驗的,可是在jbuilder里面假如對底板不選grid bag布局治理器,而選XY布局,那在上面擺控件就真的是一件很輕松的事情了,令人遺憾的是XY布局所調用的類是com.borland.jbcl.layout下面的,是由borland公司自己編寫的,很顯然這樣編寫的applet是輕松了編寫,痛苦了應用,因為實在是無法讓僅僅認得jdk1.0的IE去熟悉borland寫的類,那么就真的只有寫給自己看了嗎,現在有了JAR,你會發現如按下面的步驟來,是可以很輕松的讓別人也看到你寫的包含非jdk標準類的applet。
  
    我們在第一步寫的那界面上再添加幾個按鈕,先把底板的布局由grid bag改變成xy,再在上面添加幾個按鈕,把按鈕的右擊事件也設置為彈出菜單,以下是源程序,在jbuilder生成的代碼上簡化一下,去掉暫可不用的代碼和一些注釋,但保證可以正常運行,
  
  package test1;
  import java.awt.*;
  import java.awt.event.*;
  import java.applet.*;
  import com.borland.jbcl.layout.*;
  
  public class Applet1 extends Applet {
  boolean isStandalone = false;
  PopupMenu popupMenu1 = new PopupMenu();
  MenuItem menuItem1 = new MenuItem();
  MenuItem menuItem2 = new MenuItem();
  MenuItem menuItem3 = new MenuItem();
  Button button1 = new Button();
  XYLayout xYLayout1 = new XYLayout();/*面板改變為XYLayout布局,使用的是非jdk標準類*/
  Button button2 = new Button();
  Button button3 = new Button();/*添加三個按鈕*/
  public void init() {
  menuItem1.setLabel("1");
  menuItem2.setLabel("2");
  menuItem3.setLabel("3");
  button1.setLabel("button1");
  button1.addMouseListener(new java.awt.event.MouseAdapter() {
  public void mousePressed(MouseEve

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区三区视频免费| 成人精品视频久久久久| 亚洲最大的av网站| 亚洲免费福利视频| 亚洲国产美女精品久久久久∴| 精品一区二区亚洲| 最好看的2019的中文字幕视频| 国内精品免费午夜毛片| 午夜精品久久久久久久99黑人| 亚洲欧美另类国产| 亚洲精品中文字| 久久久久久久久久亚洲| 68精品国产免费久久久久久婷婷| 成人黄色av播放免费| 欧美精品18videosex性欧美| 欧美日韩一区二区免费在线观看| 97涩涩爰在线观看亚洲| 国产成人啪精品视频免费网| 国产成人一区二区三区电影| 国产精品男人爽免费视频1| 在线观看久久久久久| 92看片淫黄大片欧美看国产片| 亚洲人成绝费网站色www| 亚洲人成在线电影| 国产精品视频一区二区高潮| 97成人超碰免| 中文字幕精品视频| 国产精欧美一区二区三区| 亚洲精品美女在线观看播放| 精品国产一区二区三区久久久狼| 欧美国产日产韩国视频| 成人免费黄色网| 亚洲精品v欧美精品v日韩精品| 日韩精品在线观看网站| www.亚洲人.com| 久久国产精品影片| 日本久久亚洲电影| 国产精品丝袜久久久久久高清| 欧美理论电影在线观看| 国产欧美日韩精品专区| 国产精品美女www| 国产一区二区av| 欧美疯狂做受xxxx高潮| 亚洲国产精品热久久| 久久综合九色九九| 色青青草原桃花久久综合| 日本韩国在线不卡| 中文字幕综合一区| 久久久久久国产精品美女| 国产69久久精品成人| 欧美日韩国产123| 青青草一区二区| 亚洲丝袜av一区| 91在线免费看网站| 欧美午夜女人视频在线| 久久在线精品视频| 亚洲在线观看视频| 欧美日本在线视频中文字字幕| www国产精品视频| 日韩精品中文字| 欧美性理论片在线观看片免费| 国产精品久久电影观看| 欧美激情第一页xxx| 国产欧美一区二区三区视频| 国产69精品99久久久久久宅男| 久久久久日韩精品久久久男男| 色综合天天综合网国产成人网| 8x拔播拔播x8国产精品| 欧美国产精品人人做人人爱| 国产一区二区日韩| 91亚洲国产成人久久精品网站| 精品无人区乱码1区2区3区在线| 欧美超级乱淫片喷水| 福利精品视频在线| 91亚洲精品视频| 国产精品香蕉av| 91精品国产乱码久久久久久久久| 欧美在线视频免费| 91久久嫩草影院一区二区| 成人动漫网站在线观看| 国产午夜精品一区理论片飘花| 国产精品人人做人人爽| 亚洲午夜精品视频| 精品一区二区三区三区| 精品在线观看国产| 国产精品亚洲第一区| 欧美精品日韩www.p站| 国产精品影院在线观看| 亚洲最大激情中文字幕| 国产精品成人国产乱一区| 亚洲国产一区二区三区四区| 91欧美激情另类亚洲| 亚洲有声小说3d| 国产精品青草久久久久福利99| 久久久97精品| 欧美在线精品免播放器视频| 国产欧美 在线欧美| 久久久成人精品视频| 日韩一级黄色av| 亚洲电影免费观看高清完整版在线观看| 欧美一级片在线播放| 亚洲系列中文字幕| 欧美影院久久久| 亚洲人成毛片在线播放| 亚洲精品久久久久中文字幕二区| 日韩精品视频在线免费观看| 欧美xxxx14xxxxx性爽| 欧美色xxxx| 国产精品日日做人人爱| 欧美高清激情视频| 国产在线999| 亚洲欧美精品在线| 日韩av资源在线播放| 成人国产在线激情| 夜夜嗨av一区二区三区免费区| 欧美日韩xxx| 亚洲开心激情网| 国产在线播放91| 精品久久久久久久久国产字幕| 清纯唯美日韩制服另类| 欧美日韩激情视频8区| 亚洲精品av在线播放| 欧美富婆性猛交| 日韩中文字幕视频| 日韩精品视频免费| 久久免费视频这里只有精品| 亚洲护士老师的毛茸茸最新章节| 日韩av在线最新| 九九九久久久久久| 国外成人在线直播| 日韩精品在线私人| 国产一区二区三区直播精品电影| 欧美午夜性色大片在线观看| 久久久久久69| 在线观看日韩视频| 欧美老女人xx| 成人h视频在线观看播放| 日本精品性网站在线观看| 最近2019中文免费高清视频观看www99| 2021久久精品国产99国产精品| 亚洲黄色在线观看| 欧美亚洲另类在线| 亚洲第一网站免费视频| 国产精品一区二区在线| 日韩激情第一页| 久久久91精品| 精品亚洲男同gayvideo网站| 日韩久久午夜影院| 亚洲美女精品成人在线视频| 久国内精品在线| 日韩在线观看网站| 色婷婷综合久久久久中文字幕1| 日韩亚洲在线观看| 欧美午夜宅男影院在线观看| 亚洲日韩欧美视频| 欧美日韩国产中文精品字幕自在自线| 欧美日韩精品在线视频| 97婷婷涩涩精品一区| 国产伦精品免费视频| 日韩亚洲欧美中文在线| 亚洲天堂男人天堂| 国产精品草莓在线免费观看| 欧美色videos| 久久久精品日本|