先對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
現在普遍用的版本是
那麼就去下一個吧
sun的主機太遠
速度也一般般
關鍵是e文的
目錄又深
國內有些網站也提供下載的
速度也挺快
在搜索引擎裡面查找一下便有一堆了
最好是准備一個可視化的java編程環境
在windows平台下推薦jbuilder
Inprise也就borland公司出的
除開資源占得厲害
有些垃圾代碼
也挺不錯的
至於jbuilder
的下載
也還是去搜索一下吧
還有要對jbuilder熟悉一下
裡面有jbuilder書籍下載
有興趣就去下一個看看
挺不錯的
現在開始JAR的第一步
jdk提供了jar的工具
就在java所在目錄的bin目錄下有一個jar
exe的應用程序
可以試著新建一個jar文件
jar cvf test
jar *
class image
c參數表示在標准輸出上創建新歸檔或空歸檔
v參數表示把添加了一些什麼的信息在標准輸出上顯示
f 參數在這裡表示用什麼樣的jar文件名
在jbuilder裡面新建一個JAR更加方便
wizards菜單的archive builder一步步往下選就可以了
為了更好的鑽研JAR
就從在jbuilder做個applet開始吧
做這樣一個東西
在一個面板上有一個按鈕
右鍵單擊按鈕將彈出一個菜單
新建一個工程test
jpr
再新建一個applet applet
Java
接下來在面板上擺上一個java
awt
button
再擺上一個java
awt
popupMenu
在popupMenu的編輯面板輸入幾個選項
這樣控件擺完了
接下來是寫相應的事件
源程序如下
package test
;
import java
awt
*;
import java
awt
event
*;
import java
applet
*;
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 ? System
getProperty(key
def) :
(getParameter(key) != null ? getParameter(key) : def);
}
/**Construct the applet*/
public Applet
() {
}
/**Initialize the applet*/
public void init() {
try {
jbInit();
}
catch(Exception e) {
e
printStackTrace();
}
}
/**Component initialization*/
private void jbInit() throws Exception {
menuItem
setLabel(
);
menuItem
setLabel(
);
menuItem
setLabel(
);
button
setLabel(
button
);
file://這是button
的監聽事件
button
addMouseListener(new java
awt
event
MouseAdapter() {
public void mousePressed(MouseEvent e) {
button
_mousePressed(e);
}
});
popupMenu
add(menuItem
);
popupMenu
add(menuItem
);
popupMenu
add(menuItem
);
this
add(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) {
/*通過InputEvent
BUTTON
_MASK對右鍵的判斷
要判斷是左鍵用InputEvent
BUTTON
_MASK
*/
int mods=e
getModifiers();
if((mods&InputEvent
BUTTON
_MASK)!=
)
{
popupMenu
show(button
e
getX()
e
getY());
button
}
}
}
file://applet
java 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後會在其下面多出來一個test
jar
在JAR的屬性欄裡是一樣可以添加和刪除applet的class文件的
只是記得每次重新編譯了class文件後都要rebuild這個JAR文件
這是為了讓JAR文件中的class也得到及時更新
雙擊test
jar會發現有兩個class文件
Applet
class和Applet
$
class
後者是用來存放鼠標監聽
右鍵點擊事件的中間代碼的
現在只是需要把它發布到浏覽器上就可以了
在test
目錄下新建l文件
內容很簡單
<APPLET code=test
Applet
class archive=
test
jar
></APPLET>
相比之下
要選擇發布這樣的class文件
就必須把Applet
class和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布局所調用的類是com
borland
jbcl
layout下面的
是由borland公司自己編寫的
很顯然這樣編寫的applet是輕松了編寫
痛苦了應用
因為實在是無法讓僅僅認得jdk
的IE去認識borland寫的類
那麼就真的只有寫給自己看了嗎
現在有了JAR
你會發現如按下面的步驟來
是可以很輕松的讓別人也看到你寫的包含非jdk標准類的applet
我們在第一步寫的那界面上再添加幾個按鈕
先把底板的布局由grid bag改變成xy
再在上面添加幾個按鈕
把按鈕的右擊事件也設置為彈出菜單
以下是源程序
在jbuilder生成的代碼上簡化一下
去掉暫可不用的代碼和一些注釋
但保證可以正常運行
package test
;
import java
awt
*;
import java
awt
event
*;
import java
applet
*;
import com
borland
jbcl
layout
*;
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() {
menuItem
setLabel(
);
menuItem
setLabel(
);
menuItem
setLabel(
);
button
setLabel(
button
);
button
addMouseListener(new java
awt
event
MouseAdapter() {
public void mousePressed(MouseEve
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19680.html