zoukankan      html  css  js  c++  java
  • 打包jar类库与使用jar类库

    http://blog.csdn.net/renfufei/article/details/16545435

    翻译人员: 铁锚
    翻译时间: 2013年11月17日
    原文链接: Build a Java library by using jar file

    代码复用是软件开发中很重要的一个原则.将常用的函数构建为类库是一个很好的解决方法,什么时候要用到这些功能,只需要调用就好了.

    下面将演示如何导出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(" ", " ");  
    58.         s = s.replaceAll(" ", " ");  
    59.         s = s.replaceAll(" ", "<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(" ","").replaceAll(" ","").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. }  


    相关文章:

  • 相关阅读:
    免费的视频、音频转文本
    Errors are values
    Codebase Refactoring (with help from Go)
    Golang中的坑二
    Cleaner, more elegant, and wrong(msdn blog)
    Cleaner, more elegant, and wrong(翻译)
    Cleaner, more elegant, and harder to recognize(翻译)
    vue控制父子组件渲染顺序
    computed 和 watch 组合使用,监听数据全局数据状态
    webstorm破解方法
  • 原文地址:https://www.cnblogs.com/carl2380/p/4689799.html
Copyright © 2011-2022 走看看