由于项目用到的Jar包或者Classpath内容较多,经常出现同时装载两份Class的情况,今天恰好在浏览时看到如下代码:
public class Whoami {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
which(Whoami.class);
}
public static void which(Class aClass) throws Exception {
System.out.println(aClass.getProtectionDomain().getCodeSource().getLocation());
}
}
输出如下:
file:/D:/Applications/Workspaces/JBossTools/registration/build/classes/
检查你用的类到底是从哪个Jar包或者目录下装载的,这样以后类似问题也多了一个诊断的手段!哈哈哈
如果你怀疑你用的类的版本,那么请用这个方法吧!
参考文章:
http://www.0xcafefeed.com/2008/05/where-was-this-class-loaded-from/
分享到:
相关推荐
11.如何在列表框中自动装载磁盘文件列表?(Visual C++编程 源代码)11.如何在列表框中自动装载磁盘文件列表?(Visual C++编程 源代码)11.如何在列表框中自动装载磁盘文件列表?(Visual C++编程 源代码)11.如何...
在Java编程语言中,类文件的动态装载是一个关键特性,它允许程序在运行时加载未知或需要在后期确定的类。这种灵活性对于实现插件系统、动态代理、反射和其他高级功能至关重要。本篇文章将深入探讨Java类文件的动态...
在这个方法中,我们需要执行一系列操作,例如检查类是否已加载,是否是系统类,从特定位置加载类,定义类,解析类等。 特别地,JVM有一个内置的根装载器(bootstrap ClassLoader),它加载的是Java核心库中的类,被...
在编程领域,尤其是在开发用户界面(UI)时,经常需要将磁盘上的文件或目录列表显示在列表框(ListBox)中。...通过掌握这些基础,你可以轻松地在自己的应用中实现这个功能,为用户提供更加直观的文件浏览体验。
3. **隔离性**:不同的类装载器可以加载相同的类文件,但是这些类在JVM中被认为是不同的类。这种隔离性对于实现多租户环境特别有用,因为它允许不同的用户或应用程序拥有独立的类空间。 #### 类装载器的工作原理 ...
Java虚拟机(JVM)的类装载是指将包含在类文件中的字节码装载到JVM中,并使其成为JVM的一部分的过程。Java虚拟机的类动态装载技术能够在运行时刻动态地加载或者替换系统的某些功能模块,而不影响系统其他功能模块的...
在操作系统中,文件装载(file loading)是指将程序从磁盘加载到内存中以便执行的过程。在FAT文件系统下,这个过程涉及以下步骤: 1. **定位文件**:操作系统首先根据文件路径找到对应的文件目录项,获取文件的首簇...
在"从dll中动态装载类的源程序"中,可能包含了创建和管理DLL资源的示例代码。通常,这样的代码会包括以下步骤: 1. 加载DLL:使用LoadLibrary函数。 2. 获取函数指针:使用GetProcAddress函数。 3. 调用DLL中的函数...
- **尝试从类装载器的存储区获取所请求的类**:从缓存中查找已装载的类。 - **在虚拟机中定义所请求的类**:如果没有找到,使用`defineClass()`方法创建`Class`对象。 - **解析所请求的类**:将符号引用转换为直接...
### 利用类装载器动态加载类并启动类 #### 概述 本文将详细介绍如何通过自定义类装载器来动态加载并启动类的过程,同时介绍一个简单的位移加密算法和非运算加密算法,以及如何使用这些算法进行文件的加密与解密。此...
本文主要探讨了类装载的原理、实现方式及其在实际应用中的作用。 首先,类装载的过程分为三个主要阶段:装载、链接和初始化。装载阶段涉及寻找并导入类或接口的二进制数据,通常由类装载器(ClassLoader)执行。...
Java虚拟机类装载机制是Java运行环境中的核心组成部分,它负责将类的字节码从磁盘、网络等不同来源加载到JVM中,并进行一系列处理以使类能够被正确地使用。类装载机制的目的是为了实现代码的动态加载和运行时的灵活...
类装载器负责将类文件加载到Java虚拟机(JVM)中,而命名空间则帮助组织和管理这些类,避免命名冲突。 1. **类装载器(ClassLoader)** 类装载器是Java动态性的一个关键组件,它们根据类的全限定名(包括包名和...
【exe文件装载过程】 在Windows操作系统中,当用户运行一个.exe可执行文件时,系统会进行一系列复杂的步骤来装载和执行程序。以下是exe文件装载过程的详细解释: 1. **程序段前缀PSP(Program Segment Prefix)** ...
【Linux 文件系统装载探究】 Linux 文件系统在信息化建设中扮演着至关重要的角色,因为它负责管理和存储数据。Linux 系统采用“一切皆是文件”的哲学,这意味着不仅仅是普通的文本文件,就连目录、字符设备、块设备...
装载(Loading)是指将可执行文件加载到内存中的过程。在这个过程中,操作系统将可执行文件加载到内存中,并将其映射到虚拟地址空间中。 装载有两种方式:静态装载和动态装载。静态装载是指在编译时将可执行文件...
分散装载技术主要应用于基于ARM架构的单片机系统中,通过定义一个特殊的散布局文件(.scf文件),来指定程序不同部分的加载位置。 #### 二、散布局文件(scatter file)的作用与格式 **作用:** 散布局文件是用来...