@Test
public void getClassLocation() throws Exception {
Class cls = DefaultListableBeanFactory.class;
URL rt = null;
final String clsResource = cls.getName().replace(".", "/").concat(".class");
final ProtectionDomain pd = cls.getProtectionDomain();
if (pd != null) {
final CodeSource cs = pd.getCodeSource();
if (cs != null) {
rt = cs.getLocation();
}
if (rt != null) {
if ("file".equals(rt.getProtocol())) {
if (rt.toExternalForm().endsWith(".jar") || rt.toExternalForm().endsWith(".zip")) {
rt = new URL("jar:".concat(rt.toExternalForm()).concat("!/").concat(clsResource));
} else if ((new File(rt.getFile()).isDirectory())) {
rt = new URL(rt, clsResource);
}
}
}
}
if (rt == null) {
final ClassLoader loader = cls.getClassLoader();
rt = loader != null
? loader.getResource(clsResource)
: ClassLoader.getSystemResource(clsResource);
}
System.err.println(rt);
}
相关推荐
类加载器负责查找并加载类的字节码文件(.class文件),这些文件通常来自于JAR包。类加载的过程可以分为三个阶段:加载、验证、准备、解析和初始化。 1. **加载**:类加载器寻找并读取类的二进制数据,这个数据可能...
下面将详细阐述Java开发中JAR包的用途、创建、使用以及常见的一些jar包类型。 1. **JAR文件的用途**: - **代码打包**:将多个`.class`文件打包成一个JAR文件,便于分发和运行。 - **资源整合**:除了包含类文件...
总的来说,"JAR包查找工具"是一个实用的开发辅助工具,它结合了SWT的UI优势,简化了对Java项目中类文件来源的查找过程。通过分析源代码和理解其工作原理,开发者可以进一步定制或优化工具,以适应特定的开发需求。...
总结起来,通过Java的反射机制,我们可以解析jar文件,查找并加载特定的类,然后执行其中的Java代码。这种方法在插件系统、动态加载代码或需要在运行时解析类的情况下非常有用。然而,由于反射降低了代码的静态类型...
5. 结果展示:最后,工具将查找结果以清晰的方式呈现给用户,包括类的完整路径和所属的jar包。 这个工具对于排查问题,尤其是依赖冲突或者类加载问题非常有用。例如,当你看到一个运行时异常,提示找不到某个类,你...
### Java开发中常用jar包的作用 在Java开发中,有许多常用的第三方jar包为开发者提供了丰富的功能,极大地提高了开发效率和程序质量。以下是一些常见jar包及其用途的详细介绍: #### activation.jar - **作用**: ...
Jar包是一种压缩文件格式,它将多个Java类文件、资源文件和其他元数据打包在一起,方便在不同的项目或环境中进行共享。 #### 知识点二:Jar包的重要性 - **简化代码管理**:通过使用Jar包,开发者可以轻松地引入...
这个给定的“这是java开发jar包”压缩文件很显然是为了提供一系列Java开发所需的库和工具,以方便开发者在项目中使用。 首先,我们需要理解JAR文件的主要作用: 1. **代码封装与分发**:开发者可以将一个或多个类...
JAVA类查找工具是一款专为Java开发者设计的实用软件,它能帮助用户快速定位并查找Java类,无论是存在于JAR文件还是ZIP文件中。这个工具极大地方便了开发过程中的代码管理和调试,尤其当项目庞大,类库众多时,它的...
1. **查找来源**:你可以去官方网站或者可靠的第三方资源网站搜索`json.jar`的最新版本。确保选择与你的Java环境兼容的版本。 2. **下载文件**:找到合适的下载链接,点击下载`json.jar`文件到你的计算机上。 3. *...
在Android开发环境中,JAR包查看工具特别重要,因为Android应用(APK)本质上是经过特殊处理的JAR包。开发者可能会用到这样的工具来检查依赖库的内容,理解它们如何影响应用性能,或者在调试过程中查找问题。 例如...
在Java开发过程中,管理和组织库文件,特别是JAR包,是一项至关重要的任务。"工程中jar包管理工具---ivy"的出现,就是为了有效地解决这个问题。Ivy是一个由Apache Ant项目维护的依赖管理工具,它允许开发者以声明式...
查看import的类是出自哪个jar包的方法 Java 中的导入(import)语句是我们日常编程中最常用的语句之一,但是有时候我们需要知道某个类是来自哪个 jar 包的,这篇文章将为大家带来一个查看 import 的类是出自哪个 ...
2. **commons-collections-3.2.1.jar**: 包含了对 Java 内置集合框架的扩展和增强,如多维数组、堆、双向队列、优先级队列、图结构等,以及各种实用的集合操作方法,如排序、查找、过滤等。 3. **commons-lang3-...
**Java档案(JAR)与DOM4J** Java档案(JAR)是Java平台上的一个标准文件格式,用于集合多个类文件、相关的元数据以及资源文件。...通过集成DOM4J的JAR包,开发者可以极大地提升XML处理的效率和便利性。
【标题】"官方jar包javax-inject.jar"指的是Java编程语言中的一个官方发布的库文件,主要包含`javax.inject`包下的类和接口。这个jar包是Java依赖注入(Dependency Injection,简称DI)的一个实现,主要用于简化对象...
7. **类加载机制**:Java虚拟机(JVM)使用类加载器来查找和加载JAR文件中的类。当类首次被引用时,JVM会从类路径中搜索对应的JAR文件,解析并加载类。 8. **资源文件的管理**:除了类文件,JAR文件还可以包含图像...
本压缩包提供了三个关键工具,帮助开发者和安全研究人员深入理解Android应用(APK)和Java程序(JAR包)的工作原理。 首先,"反编译工具"是用于将已编译的代码转换回源代码的工具。在Java世界中,常见的反编译工...
标题“lib_jar包_”表明这是一份包含多个Java库的集合,这些库可能包含了各种功能模块,供开发者在项目中引用和使用。描述中提到“里面有很多的jar包,各式各样的,需要什么可以自己找一找”,暗示了这个`lib`目录下...
在Android开发中,jar包通常用于包含一些预编译的Java类库,例如网络请求库、数据库操作库等。使用jar包的优点是不需要源代码,可以直接引入使用,缺点是更新和维护可能不便,特别是当库的API有变化时。 压缩包子...