免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1089 | 回复: 0
打印 上一主题 下一主题

再谈Java打包 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-30 10:30 |只看该作者 |倒序浏览

               
                首先,這是jar的全稱:JavaTM Archive (JAR)
file,是的,就是java存檔檔。這有點類似zip檔,想一想它是幹什麼的用的呢,壓縮!?沒錯就是要壓縮,將我們原先零散的東西放到一下,重新
組織,所有這些目的只有一個:方便!好了,不用管他是怎麼壓縮的,我們的重點是哪些是我們要壓縮的(輸入),還有壓縮成了什麼(輸出),進而將它發佈(部
署)。
那 我們的輸入(要壓縮的東西)主要是class檔,還有輔助的資源(這其中可能有圖片,jsp檔,html檔等等)。Jar技術在jdk1.1版本中
就已存在,在1.2中又有了增強。接下來說說jar的好處吧,這是官方的描述:安全,快速下載,壓縮,獵取包,版本化包,可攜。
說了這麼多,我們現在開始實施。
先打開命令提示符(win2000或在運行筐裏執行cmd命令,win98為DOS提示符),輸入jar ?help,然後回車(如果你盤上已經有了jdk1.1或以上版本),看到什麼:
用法:jar {ctxu}[vfm0Mi] [jar-檔] [manifest-檔] [-C 目錄] 檔案名 ...
選項:
-c 創建新的存檔
-t 列出存檔內容的列表
\-x 展開存檔中的命名的(或所有的〕檔
-u 更新已存在的存檔
-v 生成詳細輸出到標準輸出上
-f 指定存檔檔案名
-m 包含來自標明檔的標明資訊
-0 只存儲方式;未用ZIP壓縮格式
-M 不產生所有項的清單(manifest〕檔
-i 為指定的jar檔產生索引資訊
-C 改變到指定的目錄,並且包含下列檔:
如果一個檔案名是一個目錄,它將被遞迴處理。
清單(manifest〕檔案名和存檔檔案名都需要被指定,按'm' 和 'f'標誌指定的相同順序。
示例1:將兩個class檔存檔到一個名為 'classes.jar' 的存檔文件中:
jar cvf classes.jar Foo.class Bar.class
示例2:用一個存在的清單(manifest)檔 'mymanifest' 將 foo/ 目錄下的所有檔存檔到一個名為 'classes.jar' 的存檔文件中:
jar cvfm classes.jar mymanifest -C foo/ .
來個小例子試試看:
我們只有一個HelloWorld,如下:
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hi, Hello World!");
}
}
我將這個java檔存到C盤跟目錄下,ok,接下來,
在先前打開的命令提示符下(跳轉到C盤提示符下),我們輸入javac HelloWorld.java,然後繼續輸入:jar cvf hello.jar HelloWorld.class,回車後去你的C盤看看,多了什麼,沒錯 hello.jar 。
基本的步驟我們現在都知道了,你可以自己去嘗試一下隨著jar後面的參數的不同,結果有什麼變化。
緊接著我們看看如何運行我們的jar包。
在進入正題之前,你要先打開我們剛剛做好的jar包看看,多了什麼呢,META-INF目錄?再看看裏面是什麼,還有一個MANIFEST.MF文件是不是?用文本編輯器(我這裏是UltraEdit)打開它看看:
Manifest-Version: 1.0
Created-By: 1.4.2 (Sun Microsystems Inc.)
就是這樣。這裏我們對它進行修改,加一句:Main-Class: HelloWorld (在第三行)。這個就是我們之前寫的那個類,也就是我們的入口類。也即,
Manifest-Version: 1.0
Created-By: 1.4.2 (Sun Microsystems Inc.)
Main-Class: HelloWorld ");
out.println("Hello, World!");
out.println("");  
out.println("Hello, World!");?
out.println("");  
}   
}//end here! ?
  
對它編譯。下麵是web.xml:

T
  
  hello  
  HelloWorld?
  


hello
/HelloWorld

  
?
  

開始壓縮,形成war檔:
   
在命令提示符下進到先前創制的hello目錄下,執行 jar cvf hello.war * ,我們便得到hello.war。將它拷貝至webapps目錄下,ok,來看最後一步,打開tomcat的目錄conf中的server.xml,加入:
  
  
  
大功告成!運行它,啟動tomcat,後在流覽器中輸入http://localhost:8080/hello/HelloWorld,有了嗎?
?
最後,如果你想用ant來完成以上的打包活動,下面就告訴你:

對於jar來說。在build.xml中,
  


      
     
   
  

對於war,


  
   
      
   
   
      

出處﹕http://blog.matrix.org.cn/page/yyjzsl
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/22331/showart_162335.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP