代碼複用是軟件開發中很重要的一個原則.將常用的函數構建爲類庫是一個很好的解決方法,什麼時候要用到這些功能,只需要調用就好了.
下面將演示如何導出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
創建類完成以後,根據需要寫相關的代碼,示例代碼如下:
- package com.renfufei.util;
- import java.util.Random;
- import java.util.UUID;
- public class StringUtil {
- /**
- * 判斷某個字符串不爲空
- * @param s
- * @return
- */
- public static boolean notNull(String s){
- return !isNull(s);
- }
- /**
- * 是整形正整數
- * @param s
- * @return
- */
- public static boolean isLong(String s){
- if (null != s && s.matches("^[+-]?\\d+$")) {
- return true;
- } else {
- return false;
- }
- }
- /**
- * 判斷某個字符串是空
- * @param s
- * @return
- */
- public static boolean isNull(String s){
- return null == s || s.trim().length() < 1 || "null".equalsIgnoreCase(s);
- }
- /**
- * 隨機生成一串字符串
- */
- public static String getUUID(){
- String uuid=UUID.randomUUID().toString();
- return uuid;
- }
- /**
- * 轉換爲HTML,防止JS注入
- * @param s
- * @return
- */
- public static String toHTML(String s){
- if (isNull(s)) {
- s = "";
- }
- s = s.replaceAll("&", "&");
- s = s.replaceAll("<", "<");
- s = s.replaceAll(">", ">");
- s = s.replaceAll("\"", """);
- s = s.replaceAll(" ", " ");
- s = s.replaceAll("\r\n", "\n");
- s = s.replaceAll("\r", "\n");
- s = s.replaceAll("\n", "<p>");
- //
- return s;
- }
- public static String handleSpecialChar(String s){
- if (isNull(s)) {
- s = "";
- }
- s=s.replaceAll("\r","").replaceAll("\n","").replace("\\","\\\\").replace("\"","\\\"").replace("<", "<").replace(">", ">");
- //
- return s;
- }
- /**
- * 截斷。返回截斷後的字符串
- * @param s 需要階段的字符串
- * @param beginIndex 開始index
- * @param endIndex 結束index
- * @return
- */
- public static String truncate(String s,int beginIndex,int endIndex){
- if (null == s) {
- return "";
- }
- int len = s.length();
- if (endIndex > len) {
- return s.substring(beginIndex);
- }else {
- return s.substring(beginIndex, endIndex)+"...";
- }
- }
- /**
- * 隨機生成N位字符串--大寫字母和數字
- * @param num
- * @return
- */
- public static String getRandStr(int num){
- String randString = "23456789ABCDEFGHJKMNPQRSTUVWXYZ";
- return randStr(randString,num);
- }
- private static String randStr(String randString,int num){
- Random rnd = new Random();
- String rand = "";
- for(int i=0;i<num;i++){
- rand =rand + String.valueOf(randString.charAt(rnd.nextInt(randString.length())));
- }
- return rand;
- }
- // 簡單的單元測試
- public static void main(String[] args) {
- String s = "--100";
- System.out.println(isLong(s));
- }
- }
書寫過程中,記得隨時 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. 查看輸出結果.
測試代碼如下:
- package com.renfufei.test;
- import com.renfufei.util.StringUtil;
- public class TestUtil {
- public static void main(String[] args) {
- String num = "100";
- System.out.println(StringUtil.isNull(num));
- }
- }