`
- 浏览:
88844 次
- 性别:
-
查看Class从那个jar文件加载及在jar文件中查找Class
查看类是从哪个Jar包中加载的:
java 代码
- ProtectionDomain pd = MyCase.class.getProtectionDomain();
- CodeSource cs = pd.getCodeSource();
- System.out.println(cs.getLocation());
查找类在某个目录下哪个Jar包中:
java 代码
- package test;
-
- import java.io.File;
- import java.util.ArrayList;
- import java.util.Enumeration;
- import java.util.List;
- import java.util.zip.ZipEntry;
- import java.util.zip.ZipFile;
-
- public class FindJarOfClass {
- public String className;
-
- public ArrayList jarFiles = new ArrayList();
-
- public FindJarOfClass() {
- }
-
- public FindJarOfClass(String className) {
- this.className = className;
- }
-
- public void setClassName(String className) {
- this.className = className;
- }
-
- public List findClass(String dir, boolean recurse) {
- searchDir(dir, recurse);
- return this.jarFiles;
- }
-
- protected void searchDir(String dir, boolean recurse) {
- try {
- File d = new File(dir);
- if (!d.isDirectory()) {
- return;
- }
- File[] files = d.listFiles();
- for (int i = 0; i < files.length; i++) {
- if (recurse && files[i].isDirectory()) {
- searchDir(files[i].getAbsolutePath(), true);
- } else {
- String filename = files[i].getAbsolutePath();
- if (filename.endsWith(".jar")||filename.endsWith(".zip")) {
- ZipFile zip = new ZipFile(filename);
- Enumeration entries = zip.entries();
- while (entries.hasMoreElements()) {
- ZipEntry entry = (ZipEntry) entries.nextElement();
- String thisClassName = getClassName(entry);
- if (thisClassName.equals(this.className) || thisClassName.equals(this.className + ".class")) {
- this.jarFiles.add(filename);
- }
- }
- }
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public List getFilenames() {
- return this.jarFiles;
- }
-
- protected String getClassName(ZipEntry entry) {
- StringBuffer className = new StringBuffer(entry.getName().replace('/', '.'));
- return className.toString();
- }
-
- public static void main(String args[]) {
- FindJarOfClass findInJar = new FindJarOfClass("org.apache.tuscany.test.SCATestCase");
- List jarFiles = findInJar.findClass("E:/yanhua/library/tuscany-jar", true);
- if (jarFiles.size() == 0) {
- System.out.println("Not Found");
- } else {
- for (int i = 0; i < jarFiles.size(); i++) {
- System.out.println(jarFiles.get(i));
- }
- }
- }
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
功能讲解: 1.搜索分析指定路径下所有jar包中是否存在指定文件。譬方说要在jar包中查询某个**.class文件。...6.查看Class从那个jar文件加载及在jar文件中查找Class 7.快速找出Class文件所在的Jar文件
譬方说要在jar包中查询目个**.class文件。用户可以不用打开Jar包,直接输入路径和要查找的文件即可搜索。 3.除了对Jar包进行搜索分析外,还可以对zip包进行分析 4.填写搜索路径是最好不要只填写“E:/”根盘目录,...
确保新class文件与旧版本在文件路径和命名上保持一致,以便Java虚拟机能正确识别。 4. **重新打包JAR**:使用`jar cf new-jar-file.jar *`命令将修改后的目录重新打包为一个新的JAR文件。如果需要保留原始JAR的...
在Java开发过程中,`jar`(Java Archive)文件是一种重要的归档格式,它用于集合多个`.class`文件,也就是编译后的Java源代码,形成一个单一的可执行文件。这有助于减少部署应用程序所需的资源数量,并方便分发。当...
3. 在文件列表中选择需要查看的类,源代码会自动显示在右侧窗口。 在提供的压缩包文件中,我们看到的文件包括LICENSE、README.md、NOTICE、site.xml、plugins和features。这些文件通常包含开源软件的许可证信息...
`jclasslib`是一款强大的反编译器和字节码查看器,它允许开发者查看并修改JAR文件中的`.class`文件。这篇文章将深入探讨如何使用`jclasslib`来操作包含其他JAR的复杂项目。 首先,了解`jclasslib`的基本功能。它...
将class文件打包成jar文件是Java开发中常见的需求,尤其在使用WebService的SOAP协议时,为了实现远程调用,往往需要将本地的类文件(.class)打包成jar包进行分发。本文将深入探讨这一过程,包括手动压缩和利用...
oracle驱动包,class14.jar
JarClassSearch class 文件搜索工具,可以查找出指定名称的class出现了那些jar包中 对jar包上了数量的工程特别有用,而且是GUI界面的 真是人见人爱,见人爱人,javaer 的居家旅行必备
3. **设置导出选项**:在弹出的对话框中,选择你需要包含在JAR文件中的Class文件、资源文件等。可以指定一个目标路径和文件名,比如命名为`pet.jar`。 4. **配置Manifest文件**:Manifest文件是JAR文件的一个重要...
为了使JAR文件成为可执行文件,开发者需要在`MANIFEST.MF`中添加`Main-Class`字段,指定程序的入口点(即包含`public static void main(String[] args)`方法的类)。例如,如果主类位于`test`包下,名为`Test`,`...
这类工具可以帮助开发者分析代码、查找错误、反编译Class文件,甚至可以查看JAR内的元数据和资源文件。 常见的Class查看工具有: 1. **JAD (Java Decompiler)**:一款流行的Java反编译器,可以将Class文件转换回...
在编写完自己的程序以后,可以利用此方式提供给其他应用程序,安全
2. **加载Jar文件**: 在JADX界面中,通常有一个“Open”或“File”菜单,点击后选择需要查看的.jar文件进行加载。 3. **浏览代码**: 加载成功后,JADX会显示.jar文件的目录结构。你可以逐级展开查看各个类和资源文件...
在Java开发过程中,有时我们需要查看已编译的.jar或.class文件中的源代码,这对于调试、学习或者理解他人代码的工作流程非常有帮助。标题提到的"jar,class文件源码查看"是一个解决此类需求的工具,它允许用户方便地...
在Java开发过程中,有时我们需要查看`.class`文件以理解代码的编译结构或者进行反编译操作。Eclipse作为一款强大的Java集成开发环境,虽然默认并不支持直接查看`.class`文件,但通过添加特定插件可以实现这一功能。...
在Java开发中,JAR(Java Archive)文件是一种常用的打包格式,它将多个类文件、资源文件等集合在一起,便于分发和运行。当我们需要查看JAR包内部的class文件时,可以采取以下方法: 首先,`怎么看jar包的class文件...
- 在文件中添加以下内容:`Manifest-Version: 1.0` - 将文件重命名为 `manifest.mf`。 2. **使用 `manifest.mf` 文件**: - 执行 `jar` 命令时,加入 `-m` 参数并指定 `manifest.mf` 文件的位置。 ```sh jar ...