确定Java包的位置

时间:2013-02-14 15:18:07

标签: java classpath

我需要从Java项目中找到提供某个逻辑Java包的jar(例如com.example.functionality),但是有数百个,并且它们的名称并不是特别有用。

如何找出dirs / files / jar和packages / classes之间创建的映射?

3 个答案:

答案 0 :(得分:4)

obj.getClass()。getProtectionDomain()。getCodeSource()

请参阅:javadoc

答案 1 :(得分:1)

您可以在代码中执行此操作:

Class myClass = Class.forName("com.example.functionality");

// eg. /com/example/functionality.class
String classfilePath = '/' + myClass.getName().replace(".", "/") + ".class";

URL location = myClass.getResource(classfilePath);

该URL将是JAR文件(如果它不在jar中,则为类文件夹)。 虽然有点hacky - 可能不适用于所有类加载器。

答案 2 :(得分:1)

对于一次性搜索,http://www.jarfinder.com/非常方便。它具有令人印象深刻的索引,它似乎知道Maven Central中的所有内容以及Web上的许多其他下载站点,并允许您按类名搜索以查找包含该类的JAR。