如何确定Java类是从哪个包加载的
java的类装载器使用的是优先策略,加载类的时候先找到哪个就加载哪个。有时候我们做一个系统,当类库非常庞大的时候,类可能会出现冲突,也就是类路径中存在不同版本的两个相同的类,这往往给调试带来非常大的麻烦,我们可能修改了类,但由于类加载器却使用的是另外一个未被更新的类,这个时候就会丈二和尚摸不着头脑,一度使调试过程误入歧途。
import java.security.CodeSource;
import java.security.ProtectionDomain;
import org.apache.commons.lang.StringUtils;/*** 判断类是从哪个jar包中加载的
* @author Winter Lau*/public class Test {
public static void main(String[] args) {
ProtectionDomain pd = StringUtils.class.getProtectionDomain();
CodeSource cs = pd.getCodeSource();
System.out.println(cs.getLocation());}}
这段代码在我的机器上运行的结果是:
但是有一个限制经由系统类加载器所加载的类不能使用该方法来获取路径,假如你对 String类做上面的测试就会发生空指针异常,因为所得到的CodeSource为空,你可以在程序启动的时候使用-verbose来查看系统类的装载信息,使用方式有如:
用FileUtils 这个类导入的什么包呢?
com.trulytech.mantis.util
类 FileUtils
java.lang.Object
com.trulytech.mantis.util.FileUtils
--------------------------------------------------------------------------------
public class FileUtilsextends java.lang.Object
Title: Mantis
Description: 文件处理类
Copyright: Copyright (c) 2002
Company:
版本:
1.0
作者:
Wang Xian
--------------------------------------------------------------------------------
构造函数摘要
FileUtils()
方法摘要
static java.util.ArrayList getAllDir(java.lang.String path)
获得指定路径下的所有目录(包含全路径)
static java.util.ArrayList getAllFiles(java.lang.String path)
获得指定路径下的所有文件名(包含全路径)
static java.util.ArrayList getAllFiles(java.lang.String path, java.lang.String Ext)
获得指定路径下指定扩展名的所有文件(包含全路径)
static java.util.ArrayList getDir(java.lang.String path)
获得指定路径下的子目录(包含全路径),仅包含一级目录
static java.lang.String getFileExt(java.lang.String FileName)
获得文件的扩展名
static java.util.ArrayList getFiles(java.lang.String path)
获得指定路径下的文件列表(包含全路径),仅包含一级目录
static java.util.ArrayList getFiles(java.lang.String path, java.lang.String Ext)
获得指定路径下指定扩展名的文件(包含全路径),仅包含一级目录
static void RemoveAll(java.lang.String path)
删除指定目录下所有文件和目录
static void RemoveDirectory(java.lang.String path)
删除指定目录下的所有目录
static void RemoveDirectoryFiles(java.lang.String path)
删除指定目录下的所有文件
static void ZipExtract(java.lang.String ZipFile, java.lang.String Directory)
zip解压缩
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
依恋。。有问题可以问我哈。