23

给定一个类,例如org.eclipse.ui.views.navigator.ResourceNavigator,我如何找出要使用的 jar 文件?我知道它在 org.eclipse.ui.ide 中,但我怎么才能找到它呢?

编辑:感谢所有回答的人。像许多事情一样,似乎有几种方法可以给这只猫剥皮。我希望 javadoc 包含此信息。到目前为止,这里有不同的方法:

  1. 没有 Internet、Eclipse 或 NetBeans:

    for f in `find . -name '*.jar'`;  do echo $f && jar tvf $f | grep -i $1; done
    
  2. 如果您想使用 Eclipse 在本地查找:

  3. 如果您想从网上查找或者您还没有jar:

4

17 回答 17

22

如果您的类路径/项目路径中有 jar,请按 CTRL-SHIFT-T 并输入名称... jar 将显示在底部。

如果您的构建路径中没有该类 a) 将一个包含所有 jar 的虚拟项目放在一起 b) 我认为有一个插件可以从 IBM Alphaworks 中找到 jar(但这可能有点过时了)

于 2008-11-08T20:19:30.260 回答
19

你也有这个 Eclipse 插件:jarclassfinder

用户输入未找到的类的名称(或 Java 项目需要访问的类的名称)。该插件将在选定目录(和子目录)中搜索包含该类的 JAR 文件。

所有结果都显示在自定义视图的表格中。然后,用户可以浏览此表并选择 JAR 文件以添加到他的 Java 项目的构建路径中。然后,用户右键单击表中的条目,并从上下文菜单中选择要将其添加到的构建路径。


2013 年更新,正如我在“搜索 .jar 文件 eclipse ”中提到的,它不再维护,替代品也很少。

正如下面的 sunleo评论:

对于 Eclipse,Ctfl++ShiftT仍然是查找类型的最简单替代方法
(在状态栏中显示 jar 名称)


user862268评论如下

对于mac,在Eclipse中查找类和关联jar就是cmd++ 。shiftT

于 2008-11-08T20:22:19.523 回答
11

在 Eclipse IDE 中使用 Ctrl+Shift+T

打开类型对话框出现在您输入类名的地方。在显示包标识符和 jar 目标之后。

于 2011-12-20T07:51:24.120 回答
8

要回答这个问题,没有真正的方法可以知道使用哪个 jar。不同的版本可能会有不同的行为。

在查找包含给定类的 jar 时,我使用:

for f in `find . -name '*.jar'`;  do echo $f && jar tvf $f | grep -i $1; done

这将突出显示包含作为参数传入任何子文件夹中的类名的任何 jar。

查找课程的另一个好方法是使用maven repos search

于 2008-11-08T20:24:08.770 回答
5

对我来说,这很好用:

find * -type f -name '*.jar' -exec grep -l 'TestClass.class' '{}' \;

问候

于 2013-02-04T11:03:51.970 回答
3

使用这个:netbeans插件

或者jarFinder服务

于 2008-11-08T20:19:40.557 回答
3
**shell> find . -name "*.jar" | xargs -i -t \jar tvf {} | grep [TheClassNameYouAreLookingFor]**

例如,如果您正在 apache commons jar 列表中查找类 LogFactory.class,则以下命令将起作用

shell> find apache-commons/ -name "*.jar" | xargs -i -t \jar tvf {} | grep LogFactory.class

jar tvf apache-commons/commons-beanutils-1.7.0.jar

jar tvf apache-commons/commons-fileupload-1.2.1.jar

jar tvf apache-commons/commons-lang-2.3.jar

**jar tvf apache-commons/commons-logging-1.1.jar**

**21140 Tue May 09 23:08:12 EDT 2006 org/apache/commons/logging/LogFactory.class**

jar tvf apache-commons/commons-net-1.3.0.jar

上面的结果表明匹配的是commons-logging-1.1.jar

于 2011-11-10T08:34:05.647 回答
2

使用类/JAR 定位器:

http://classlocator.sourceforge.net/

[编辑] 即使从 ClassLocator 的文档(!)中也不是很明显,但它似乎是一个 Eclipse 插件。

于 2008-11-08T20:14:05.013 回答
2

我使用FindJar.com。它列出了包含任何给定类的所有已知包!这非常有帮助。

于 2008-11-08T21:40:38.273 回答
1

通常,我会jar -vtf foo.jar获取所有类文件的列表。
不是最实用的方法,但很方便。当然,您可以将结果与 grep 结合起来。

于 2008-11-08T20:13:23.020 回答
1

在 Intellij IDEA 中,您只需 ctrl-单击类名,您将被移动到该类的伪源代码,窗口标题将类似于 c:\path\to\lib.jar!\com\something\ClassName。班级

于 2008-11-09T13:02:23.327 回答
1

如果您告诉 eclipse 打开声明 (F3) 或实现 (Navigate->Open Implementation),然后您会弹出一个不可编辑的编辑窗口,您可以通过右键单击编辑器窗口并选择来查看 jar 文件的路径'在面包屑中显示'

我发现基于unix:

find . -name "*.jar" -print -exec jar -tf {} \; >outputfile

编辑输出文件以找到您想要的(而不是 grep)

于 2017-10-24T20:43:00.203 回答
0

我不确定我是否真的理解这个问题,但是如果你想验证你的类是否真的在 jar 中,你可以随时查看 jar 本身,为此你不需要任何 Eclipse 插件或专门的外用。

JAR (Java ARchive) 文件只不过是ZIP文件。您所要做的就是解压缩 jar,甚至使用 zip-reading 应用程序查看它。例如,在 Windows XP 下,它内置于操作系统中。多么方便。

希望这有帮助...

尤瓦尔=8-)

于 2008-11-08T21:29:25.423 回答
0

还要检查http://javacio.us/

于 2008-11-10T04:22:12.547 回答
0

IntelliJ IDEA 插件(类猎人)

于 2009-01-05T10:05:36.553 回答
0

您还可以尝试使用 Jarvana来查找特定类的 jar 文件。

于 2009-09-07T09:50:01.167 回答
0

我投票支持 CTRL-SHIFT-T,因为它已经包含在 Eclipse 中。我实际上在 Eclipse 安装中的插件目录中删除了 jarclassfinder.jar 但仍然无法在 Eclipse GUI 中找到该插件

于 2012-09-23T02:03:47.240 回答