1

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

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

4

3 回答 3

4

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

参见:javadoc

于 2013-02-14T15:35:42.070 回答
1

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

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

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

URL 位置 = myClass.getResource(classfilePath);

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

于 2013-02-14T15:29:36.717 回答
1

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

于 2013-02-14T15:38:03.637 回答