打包jar类库与使用jar类库

简介: 翻译人员: 铁锚 翻译时间: 2013年11月17日 原文链接: Build a Java library by using jar file代码复用是软件开发中很重要的一个原则.将常用的函数构建为类库是一个很好的解决方法,什么时候要用到这些功能,只需要调用就好了. 下面将演示如何导出jar类库与使用jar包: 1. 导出jar类库 打开Eclipse,选定工作空间.工作空间一般来说,是用户保存配置信息,以及保存源码的地方. 然后在菜单栏中选择 File  --> New  --> Java Project, 选择以后的界面将如 图2 所示。
翻译人员: 铁锚
翻译时间: 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

创建类完成以后,根据需要写相关的代码,示例代码如下:

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));
	}
}

相关文章:

  1. Library vs. Framework?
  2. Eclipse: java.lang.UnsupportedClassVersionError: Bad version number in .class file
  3. Eclipse RCP Tutorial: Export Eclipse RCP Application to be a Product
  4. How to make a Web crawler using Java?

目录
相关文章
|
1月前
|
IDE Java Linux
Seata常见问题之重新打包以单独用jar来部署如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
107 1
|
2月前
|
Java Maven
流水线之项目打包找不到rt.jar
自己打包的时候在maven中这样配置就可以<bootclasspath>${java.home}\lib\rt.jar;${java.home}\lib\jce.jar</bootclasspath>。但是在云效中不是自己的服务器,这样配置不可以,如何找到jdk的具体位置呢?
103 0
|
4月前
|
Java 关系型数据库 Linux
Linux|Java|jar包的解压和重新打包(更新配置)
Linux|Java|jar包的解压和重新打包(更新配置)
72 0
|
5月前
|
XML SQL Java
Maven的三种打包方式(jar、shade、assembly)
Maven的三种打包方式(jar、shade、assembly)
441 0
|
3月前
|
SQL Java 流计算
Flink SQL UDF(用户自定义函数)需要打包成JAR文件并上传到Flink集群中
【1月更文挑战第1天】【1月更文挑战第2篇】Flink SQL UDF(用户自定义函数)需要打包成JAR文件并上传到Flink集群中
88 0
|
1月前
|
NoSQL Java 应用服务中间件
使用innoSetup将mysql+nginx+redis+jar包打包成windows安装包
使用innoSetup将mysql+nginx+redis+jar包打包成windows安装包
使用innoSetup将mysql+nginx+redis+jar包打包成windows安装包
|
4月前
|
Java Maven
maven管理工具使用package打包的时候无法将lib文件夹下的第三方jar包打入,上线打jar包后运行异常问题
maven管理工具使用package打包的时候无法将lib文件夹下的第三方jar包打入,上线打jar包后运行异常问题
|
4月前
|
Java Maven
【解决】maven管理工具使用package打包的时候无法将lib文件夹下的第三方jar包打入,上线打jar包后运行异常问题...
【解决】maven管理工具使用package打包的时候无法将lib文件夹下的第三方jar包打入,上线打jar包后运行异常问题...
|
4月前
|
Java Maven
解决:打包SpringBoot项目成jar包后,其他的项目无法引入jar包中的对象
解决:打包SpringBoot项目成jar包后,其他的项目无法引入jar包中的对象
39 0
|
4月前
|
Java 计算机视觉 Windows
jar 手动 打包文件 so, class ,jar
jar 手动 打包文件 so, class ,jar
69 0