我有一个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.Vector,Vector.adElements()来自外部源(MyJar.jar中不存在)
忘了提,我没有访问源代码.
最佳答案:
简单
import com.example.*;
可能
List = new ArrayList();
一个挑战
Class> clazz = Class.forName("com.example.MyType");
不可能完成的任务
List classes = getClassNamesFromUrl("http://example.com/classes.txt");
for (String className:classes) {
doSomethingWith(Class.forName(className));
}
我支持Jon的建议来查看字节代码(BCEL),但是请注意,通常不可能从jar中读取所有依赖项,因为它们可以是动态的并在库外定义(请参阅:不可能完成任务).
很难说是否有工具,请查看java-source.net上的那些目录:
进一步阅读
标签:java,jvm,jar,java-me
来源: https://codeday.me/bug/20190515/1110712.html