Java中如何使封装自己的类,建立并使用自己的类库?
转自:http://blog.csdn.net/luoweifu/article/details/7281494
随着自己的编程经历的积累会发现往往自己在一些项目中写的类在别的项目中也会有多次用到。你肯定会想:如何自己的写的一些常用的类积累起来,生成自己的类库?如果是这样的话,很庆幸,你遇到通道中人了,因为我也是这样做的。下面就介绍一下我是怎么做的吧
一、先来明白一下关于classpath和path的概念
path是java中用来进行编译和运行的程序所在的路径,而classpath是类所在的路径。安装JDK之后,你应当设置好path和classpath路径。现在假设你JDK是安装在D:\IT\JDK6.0\java(TM) SE Development Kit下(因为我自己的是安装在此目录下),那么你要设置的path路径就是这个路径下的bin文件夹,即D:\IT\JDK6.0\java(TM) SE Development Kit\bin,因为bin文件夹下里面有javac.exe和java.exe(就是java中用来进行编译和运行的程序)。设置的方法如下:
1.打开“我的电脑\高级\环境变量”,如果是win7,则是:““计算机\属性\系统属性\高级环境变量”,打开如图一,

图一
双击“系统变量”下的path,把D:\IT\JDK6.0\java(TM) SE Development Kit设置进去,如图二

图二
打开命令提示符,输入javac,如果有一连串的文字,则说明设置成功。顺便说一下常用的命令提示符:javac 编译java文件,java运行java文件,java –version查询JDK的版本,包路径+“-cvf”+ className.java 打成Jar包,
2.接下来是接着设置classpath,假设你的java文件是在E:java文件夹,则可这样设置:如图三,后面有一点表示当前路径,这样的话你可以再任何路径下用javac编译java文件。

图三
3.如果你现在又一个打包好的jar文件(如何达成jar包后面会讲),现在要使用jar包里的类,则需要将jar包设置成classpath变量。假设你有一个自己tools.jar包,放在D:\IT\JDK6.0\java(TM) SE Development Kit\myJar,则需要将D:\IT\JDK6.0\java(TM) SE Development Kit\myJar\tools.jar设置到classpath中,如图四

图四
此时,你就可以在类中引用tools.jar中的类了,只需要在类中将其引入。以上操作在win7可能还出问题,还需要设置用户变量里的classpath(为什么会这样,我也不值得,希望共同探讨)。注意在图一中是有“Adiministrator用户变量”和“系统变量的”,这是只需按照图四将D:\IT\JDK6.0\java(TM) SE Development Kit\myJar\tools.jar设置到用户变量里的classpath中去就行。
二、在Eclipse中如何打成jar包?生自己的类库
Eclipse和MyEclipse是目前最流行的java集成开发环境,如果你用的是其他的开发工具,建议你尝试着用一下Eclipse进行开发,因为它功能很强大,很好用。下面就介绍一下如何在Eclipse下将自己写好的类打成jar包,生成自己的类库。
假设当前的文档结构这样的:

图五
右击项目文件Tool,选择Export,打开对话框,选择Java\JAR file后下一步,如果你只需要打包cn.edu.jxau.tools下的类,只需要选择该类即可,如图六

图六
在JAR file中选择要导出的路径和文件名,如图图七

图七
点击“下一步”、“下一步”,然后Main class中选择包含main函数(如果有面函数的话),然后点击完成(finish)。
三、为自己的类生成注释文档,即生成javadoc文件。
第二的介绍可以生成自己的类库了。但是时间久自己写的类和方法就会忘记,生成一个高质量的注释文档就很有必要的。庆幸的是Java自己就能很好的完成这一功能,能帮我们生成类似API的文档,即javadoc文档。下面介绍一下在Eclipse中如何生成javadoc文档:
1、对类进行注释
在生成javadoc文档之前首先要对类进行注释。注释有如下三种方式:
a,//注释内容;b,/*注释内容*/;(快捷键:选中要注释的内容后按“shift+Ctrl+/”,取消注释是“shift+Ctrl+\”)
c,
/**
*注释内容。
*/
其中只有c方式在生成javadoc中才有用。以我自己写的ArrayQueue类为例说明一下几种注释,只需要对public方法和变量进行注释,因为只有public类型才能被其他类访问。
(1)、在类前面注释类说明和创作者,如
/**
* 文件的复制,字符串输入到文件中,将文件内容打印到控制台
*
* @author xiaoxu
*
*/
(2)、在public方法前面注释方法的说明,如public static String readFile(File file)方法注释:
/**
* 读取一个文件里的内容
*
* @param file
* 要读的文件
* @return 返回读取文件的字符串
*/
(3)、注释对public变量进行注释,假设有一表示窗口宽度的变量WIDTH,如下注释
/**
* 主窗口的宽度
*/
public static final int WIDTH = 1000;
部分结果如下

图八(1)
2、用Eclipse生成javadoc文档
选中要生成javadoc文档的项目,再在菜单栏中的选择菜project\Generate Javadoc…。打开对话框后“javadoc command”的默认路径是C:\jdk\bin\javadoc.exe,如果没有该路径就自己添加,找到自己安装JDK的根目录下的bin\javadoc.exe,如下图

选择要生成javadoc的文件,然后选择导出的路径,一般选择默认的项目下的doc文件夹,改成其他路径可能会有错。如下:

图8(3)
之后就一路next,最后点finish就OK了。在这期间可能会出现警告,如下图

图8(4)
选择“Yes To All”。
四、如何使用自己创建的类库?
通过一、二、三,已经能够创建自己的类库了。下面说明一下如何使用自己的类库。
方法一:
假设现在要创建一个项目Test,里面要用到自己类库tools.jar中的S类。新建一个类Test.java,里面的main方法是这样的:
public static void main(String[] args) {
S.pl("java"); //S类中的S.pl()封装了System.out.println(obj);
}
这时Eclipse会报错,会说S这个类不存在,是否要创建这个类。这是因为默认的JRE并不存在tools.jar这个包,如图八。
图八(5)
那么如何将这个包夹道默认的JRE System Library中呢?
选择Window\ Preferences,打开对话框,选择Java\Installed JREs,如图九

图九
接下来,点击“Add”添加一个新的JRE,选择Standard VM后点击下一步,在JRE home中点击Directory选择JDK按钮路径下的jre文件夹(即包含rt.jar的文件夹,rt.jar是jdk的根文件夹,里面包含了所有的基本类)如图,然后点击“Add External JARs”选择生成好的tools.jar文件(最好先别tools.jar放在一个比较访问,比较安全的文件夹内,我的是直接放在JDK安装路径下的D:\IT\JDK6.0\java(TM) SE Development Kit\myJar里),如图十

图十
点击finish。
然后,在Test项目中将默认的JRE System Library换成刚刚配置好的JRE,右击Test选择Build Path选择Configure Build Path…,打开对话框,将原有的JRE Remove掉,然后Add Library,选择JRE System Library,下一步,点击“Installed JREs”后选择刚刚配置好的那个JRE,点击finish。
现在就配置好了。此时的JRE就能看到tools.jar文件,如下图:
图十一
方法二:
将刚刚生成的自己的类库Tool.jar直接拷贝到JDK和JRE的安装目录中的jre/lib/ext/中,这时候我们需要重启一下Eclipse,这样才能将刚才的那个包加载进自动生成的系统库中。
方法三:
当然除以上方法之外,也可以直接在单个项目中通过"bulid path"导入External Jar,额外的jar包。此方法类似于更换新的JRE,自己去琢磨吧!哈哈……
当然这只是我自己个人琢磨出来的方法,可能还有更好的方法。对这方面的知识我还需要进一步的学习,如果有对此方面感兴趣的朋友,欢迎加入我,互相学习,我的联系方法是:
email:luoweifu@126.com;
Java中如何使封装自己的类,建立并使用自己的类库?的更多相关文章
- java中基本类型封装对象所占内存的大小(转)
这是一个程序,java中没有现成的sizeof的实现,原因主要是java中的基本数据类型的大小都是固定的,所以看上去没有必要用sizeof这个关键字. 实现的想法是这样的:java.lang.Runt ...
- java中只能有一个实例的类的创建
Java中,如果我们创建一个类,想让这个类只有一个对象,那么我们可以 1:把该类的构造方法设计为private 2:在该类中定义一个static方法,在该方法中创建对象 package test; / ...
- java 中操作字符串都有哪些类?(未完成)它们之间有什么区别?(未完成)
java 中操作字符串都有哪些类?(未完成)它们之间有什么区别?(未完成)
- java中如何使正在运行中的线程退出
终止线程的三种方法 有三种方法可以使终止线程. 1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止. 2. 使用stop方法强行终止线程(这个方法不 ...
- 全面解释java中StringBuilder、StringBuffer、String类之间的关系
StringBuilder.StringBuffer.String类之间的关系 java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,在上一篇博文中我 ...
- java 中的JDK封装的数据结构和算法解析(集合类)----顺序表 List 之 ArrayList
1. 数据结构之List (java:接口)[由于是分析原理,这里多用截图说明] List是集合类中的容器之一,其定义如下:(无序可重复) An ordered collection (also kn ...
- 【Java基本功】一文了解Java中继承、封装、多态的细节
本节主要介绍Java面向对象三大特性:继承 封装 多态,以及其中的原理. 本文会结合虚拟机对引用和对象的不同处理来介绍三大特性的原理. 继承 Java中的继承只能单继承,但是可以通过内部类继承其他类来 ...
- Java 中你必须了解的常用类(8)
Java 中的包装类 相信各位小伙伴们对基本数据类型都非常熟悉,例如 int.float.double.boolean.char 等.基本数据类型是不具备对象的特性的, 比如基本类型不能调用方法.功能 ...
- java中的类加载器ClassLoader和类初始化
每个类编译后产生一个Class对象,存储在.class文件中,JVM使用类加载器(Class Loader)来加载类的字节码文件(.class),类加载器实质上是一条类加载器链,一般的,我们只会用到一 ...
随机推荐
- tcp 重发 应用层重传
采用TCP时,应用层需要超时重传吗? 需要,原因如下: 1 tcp的超时控制不是你能设置的,所有的tcp超时都是用系统的时间设定,而且这个时间很长,超时的结果就是断开连接.和你应用要达到的目的显然差很 ...
- ssh事务配置
<!-- 配置业务层 --> <bean id="employeeService" class="cn.bdqn.jboa.service.impl.E ...
- 菜鸟写的第一个chrome插件
一.新建一个文件夹,用来放插件的代码 二.首先新建配置文件manifest.json // 开发参考:http://open.chrome.360.cn/extension_dev/overview. ...
- Data conversion error converting
词错如果出现在sql语句中,那么多半是类型转换的问题
- android TP驱动移植调试笔记(转)
1. 添加I2C 设备 TP 一般采用的是I2C 作为数据和命令接口,所以TP 驱动也可以归类为I2C 驱动.TP驱动的主要逻辑不在这里,但是了解了Linux 的I2C 体系架构,就可以对整个驱动流程 ...
- 字符串模拟赛T2
// source code from laekov for c0x17 #define PRID "fkqh" #include <cstdio> #include ...
- SpringMVC利用拦截器防止SQL注入
引言 随着互联网的发展,人们在享受互联网带来的便捷的服务的时候,也面临着个人的隐私泄漏的问题.小到一个拥有用户系统的小型论坛,大到各个大型的银行机构,互联网安全问题都显得格外重要.而这些网站的背后,则 ...
- PHP+MySQL无限级分类(非递归)
要实现无限级分类,递归一般是第一个也是最容易想到的,但是递归一般被认为占用资源的方法,所以很多系统是不考虑使用递归的 本文还是通过数据库的设计,用一句sql语句实现 数据库字段大概如下: 字段 说明 ...
- Toast工具类,Android中不用再每次都写烦人的Toast了
package com.zhanggeng.contact.tools; /** * Toasttool can make you use Toast more easy ; * * @author ...
- hiho一下第88周《Coordinates》
题目大意 给定数字P,Q,求出所有P和Q的约数p,q能够组成的不重复数字对(p,q) 解题思路 作为本场比赛的第一题,本题的难度在于考察选手是否有基本的编程能力. 本题中需要求出P,Q所有约数组成的数 ...