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. }  


    相关文章:

  • 相关阅读:
    eclipse安装pydev
    pymongo常见的高级用法
    android sdk下载SDK Platform失败记录
    centos7 yum安装redis(转)
    centos7 将服务添加到systemctl
    python Parent.__init()和super(Child, self)的区别
    流畅的python第二十章属性描述符学习记录
    流畅的python第十九章元编程学习记录
    python 协程的学习记录
    [转]Shell脚本之无限循环的两种方法
  • 原文地址:https://www.cnblogs.com/carl2380/p/4689799.html
Copyright © 2011-2022 走看看