jar類庫打包與使用

原文鏈接:打包jar類庫與使用類庫

代碼複用是軟件開發中很重要的一個原則.將常用的函數構建爲類庫是一個很好的解決方法,什麼時候要用到這些功能,只需要調用就好了.

下面將演示如何導出jar類庫與使用jar包:

1. 導出jar類庫

打開Eclipse,選定工作空間.工作空間一般來說,是用戶保存配置信息,以及保存源碼的地方.

然後在菜單欄中選擇 File  --> New  --> Java Project, 選擇以後的界面將如 圖2 所示。

如果沒有Java Project這個快捷項,可以選擇 Other,然後再進行選擇,選擇 Other以後的界面如 圖1 所示:


圖1

如圖1所示,在其中找到 Java --> Java Project 以後,選擇Next即可進入下一步, 如 圖2 所示:


圖2

在圖2所示的界面中,輸入項目的名稱,比如: StringLib, 使用默認的存儲位置,使用默認的JRE, 然後點擊 Finish 即可. 

項目創建完成以後,關閉不必要的那些View視圖界面,(點擊X即可). 

接着,選擇左側Package視圖下的src目錄,右鍵單擊, 選擇 New --> Class , 如 圖3 所示:

 

圖3

在接下來的嚮導頁面中,輸入 類名,比如: StringUtil , 選擇包名,比如: com.renfufei.util ,然後點擊完成即可,如 圖4所示:


圖4

創建類完成以後,根據需要寫相關的代碼,示例代碼如下:

[java] view plaincopy
  1. package com.renfufei.util;  
  2.   
  3. import java.util.Random;  
  4. import java.util.UUID;  
  5.   
  6. public class StringUtil {  
  7.     /** 
  8.      * 判斷某個字符串不爲空 
  9.      * @param s 
  10.      * @return 
  11.      */  
  12.     public static boolean notNull(String s){  
  13.         return !isNull(s);  
  14.     }  
  15.     /** 
  16.      * 是整形正整數 
  17.      * @param s 
  18.      * @return 
  19.      */  
  20.     public static boolean isLong(String s){  
  21.         if (null != s && s.matches("^[+-]?\\d+$")) {  
  22.             return true;  
  23.         } else {  
  24.             return false;  
  25.         }  
  26.     }  
  27.     /** 
  28.      * 判斷某個字符串是空 
  29.      * @param s 
  30.      * @return 
  31.      */  
  32.     public static boolean isNull(String s){  
  33.         return null == s || s.trim().length() < 1 || "null".equalsIgnoreCase(s);  
  34.     }  
  35.     /** 
  36.      * 隨機生成一串字符串 
  37.      */  
  38.     public static String getUUID(){  
  39.         String uuid=UUID.randomUUID().toString();  
  40.         return uuid;  
  41.     }  
  42.   
  43.     /** 
  44.      * 轉換爲HTML,防止JS注入 
  45.      * @param s 
  46.      * @return 
  47.      */  
  48.     public static String toHTML(String s){  
  49.         if (isNull(s)) {  
  50.             s = "";  
  51.         }  
  52.         s = s.replaceAll("&""&");  
  53.         s = s.replaceAll("<""<");  
  54.         s = s.replaceAll(">"">");  
  55.         s = s.replaceAll("\""""");  
  56.         s = s.replaceAll(" "" ");  
  57.         s = s.replaceAll("\r\n""\n");  
  58.         s = s.replaceAll("\r""\n");  
  59.         s = s.replaceAll("\n""<p>");  
  60.         //  
  61.         return s;  
  62.     }  
  63.       
  64.     public static String handleSpecialChar(String s){  
  65.         if (isNull(s)) {  
  66.             s = "";  
  67.         }  
  68.         s=s.replaceAll("\r","").replaceAll("\n","").replace("\\","\\\\").replace("\"","\\\"").replace("<""<").replace(">"">");  
  69.         //  
  70.         return s;  
  71.     }  
  72.   
  73.     /** 
  74.      * 截斷。返回截斷後的字符串 
  75.      * @param s 需要階段的字符串 
  76.      * @param beginIndex 開始index 
  77.      * @param endIndex 結束index 
  78.      * @return 
  79.      */  
  80.     public static String truncate(String s,int beginIndex,int endIndex){  
  81.         if (null == s) {  
  82.             return "";  
  83.         }  
  84.         int len = s.length();  
  85.         if (endIndex > len) {  
  86.             return s.substring(beginIndex);  
  87.         }else {  
  88.             return s.substring(beginIndex, endIndex)+"...";  
  89.         }  
  90.     }  
  91.     /** 
  92.      * 隨機生成N位字符串--大寫字母和數字 
  93.      * @param num 
  94.      * @return 
  95.      */  
  96.     public static String getRandStr(int num){  
  97.         String randString = "23456789ABCDEFGHJKMNPQRSTUVWXYZ";  
  98.         return randStr(randString,num);  
  99.     }  
  100.       
  101.     private static String randStr(String randString,int num){  
  102.         Random rnd = new Random();  
  103.         String rand = "";  
  104.         for(int i=0;i<num;i++){  
  105.             rand =rand + String.valueOf(randString.charAt(rnd.nextInt(randString.length())));  
  106.         }  
  107.         return rand;  
  108.     }  
  109.       
  110.     // 簡單的單元測試  
  111.     public static void main(String[] args) {  
  112.         String s = "--100";  
  113.         System.out.println(isLong(s));  
  114.     }  
  115. }  

書寫過程中,記得隨時 CTRL+S 保存,如果書寫錯誤,可以使用 CTRL+Z 進行撤銷.

保存以後,在左側包瀏覽器 視圖界面中,選擇需要導出的包,或者選擇項目, 點擊右鍵,在彈出菜單中選擇 Export ,如 圖5 所示:


圖5

在接下來的嚮導界面中,找到並選擇 Java --> JAR File  選項,點擊Next,如 圖6 所示:


圖6

在接下來的界面中,選擇要導出的資源,如 圖7 所示,我們只選擇了 com.renfufei.util 這個包, 在下方有幾個可勾選的選項,其中一個是 導出生成的class文件,還有一個是 導出Java源文件, 圖7中都用紅色方框標識出來了, 並瀏覽選擇輸出文件,此處我們將輸出位置選擇爲桌面,文件名輸入: myutil.jar. 隨後點擊 Finish即可.


圖7

OK,如果沒有報錯,那麼導出完成,請在桌面或者保存位置查看導出的jar類庫文件,可以使用 winRAR工具或者zip工具打開查看 jar文件的結構。


2. 使用 jar 類庫

說明,如果是JavaEE或者JavaWeb項目,在Eclipse中,只需要將 相應的 jar 文件拷貝到 WebRoot下的 WEB_INF 下 的 lib 目錄中即可. 可以略過下面的部分.

新建Java Project, 選擇項目名字,比如 UseLib , 然後在項目上單擊右鍵, 在彈出菜單中選擇 New --> Folder ,如圖8 所示:


圖8

在彈出的嚮導界面中,輸入文件夾名字, 如 lib ,然後點擊 Finish 完成.如 圖9 所示:


圖9

完成以後,將需要導入的jar文件,比如 myutil.jar 在文件瀏覽器中複製( CTRL+C ),然後進入Eclipse,點擊 lib 文件夾, 粘貼( CTRL +V ).

然後在 lib下的 myutil.jar 文件上單擊右鍵,在彈出菜單中選擇 Build Path --> Add to Build path ;此時,就將類庫文件加入到執行路徑中了,如 圖10 所示:


圖10

可以在 Referenced Libraries 中看到相應的 jar 包.至此,導入完成.

3. 測試

在UseLib項目的 src中, 新建一個類 TestUtil, 包 com.renfufei.test ,可以看到,編譯並沒有出錯,選擇右鍵,Run As --> Java Application. 查看輸出結果. 

測試代碼如下:

[java] view plaincopy
  1. package com.renfufei.test;  
  2.   
  3. import com.renfufei.util.StringUtil;  
  4.   
  5. public class TestUtil {  
  6.   
  7.     public static void main(String[] args) {  
  8.         String num = "100";  
  9.         System.out.println(StringUtil.isNull(num));  
  10.     }  
  11. }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章