gpt4 book ai didi

java - 如何知道给定的 jar 文件使用了哪个类/包/方法?

转载 作者:搜寻专家 更新时间:2023-10-31 19:50:33 24 4
gpt4 key购买 nike

我有一个 jar 文件。我想知道 JAR 文件中的类使用了哪些外部类和方法。谁能给我推荐任何工具?

例如-如果下面两个类被打包成Myjar.jar

import java.util.Vector;
class MyJarClass{

public static void main(String args[]){
Vector v = new Vector();
AnotherClass another = new AnotherClass();

v.addElement("one");
another.doSomething();

}
}

class AnotherClass{

void doSomething(){
}
}

当我将该 JAR 提供给工具时 - 该工具应显示 java.util.VectorVector.adElements() 来自外部源(不存在于 < em>MyJar.jar)

忘记说了,我没有源代码。

最佳答案

简单

import com.example.*;

可能

List<com.example.MyType> = new ArrayList<com.example.MyType>();

挑战

Class<?> clazz = Class.forName("com.example.MyType");

不可能完成的任务

List<String> classes = getClassNamesFromUrl("http://example.com/classes.txt");
for (String className:classes) {
doSomethingWith(Class.forName(className));
}

我支持 Jon 查看字节码 (BCEL) 的建议,但请注意,通常不可能从 jar 中读取所有依赖项,因为它们可以是动态的并在库外定义(参见:Mission不可能)。


很难判断是否有工具,请查看 java-source.net 上的那些目录:

进一步阅读

关于java - 如何知道给定的 jar 文件使用了哪个类/包/方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3287630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com