2011-04-07 78 views
7

任何经常使用Java的人都知道,classpath中的多个jar可以给我们带来麻烦。我要寻找一个工具,这将帮助我 -Java class finder工具

  1. 搜索里面罐类文件的Classpath
  2. 搜索类文件内罐在特定位置
  3. 也许过分的要求但是如果同一个班级出现在多个罐子里,我可以告诉我。

也不用说它应该是快的。我评估过的大多数工具都非常慢并且不符合标准。

以上目的的任何工具非常赞赏。


目前我使用WinRar实现搜索(BTW真的很快)来搜索特定位置的罐子里面的类文件。但是没有办法利用它在Classpath中搜索。

+1

你为什么不只是使用一个IDE,比如Eclipse?然后搜索一个类型? – 2011-04-07 07:39:03

+0

可以使用IDE,但不幸的是不是每次都使用(例如,在weblogic服务器中部署的代码),而且我还在具有多个项目的大型代码库中使用maven2进行依赖管理。底线 - 我在寻找比IDE类型搜索能给我更多的功能。 – Pushkar 2011-04-07 07:44:02

回答

1

如果您正在使用Eclipse,那么IBM的classfinder可能是有用的。您可以对(一组)目录中的类执行(模糊)搜索,并获取包含此类的所有jar。

但是,不能确定类路径选项。

问候,
纪尧姆

+0

听起来很有趣。目前正在调查。 – Pushkar 2011-04-08 09:09:33

+0

此链接已死 – 2012-12-11 17:03:18

+0

classlocator插件执行类似的操作(http://classlocator.sourceforge.net/)。 。主要的不同之处在于索引在classlocator中构建一次,而每次使用IBM classfinder搜索的目录。 – 2012-12-13 12:15:25

0

如果您使用的是Eclipse,并且它们在您的类路径中,那么您可以使用CapitalCaseControlSpace。例如,如果我想获得一个新的ApacheFanUtilityMethodizerFunctor(当然每个人都需要),我只需键入AFUMF,然后按Ctrl + Space,然后为我填充它。既然它已经在我的类路径中,我不需要寻找它,因为它在那里。

现在,如果它不在我的类路径中,并且我必须找到它包含它的jar是什么,然后返回到WinRAR(或者对我来说,通常是Google)。

+0

不幸的是我有Maven2和一个庞大的代码库(多个应用程序服务器),其中每个项目可能有不同的依赖关系,有时甚至是不同的版本(长篇故事)。因此,我正在寻找比eclipse类型搜索更强大的功能。 – Pushkar 2011-04-07 08:03:03

+0

Eclipse的设计是为了能够处理这些问题,如果我错了,可以纠正我,但我相信Maven有一个eclipse插件,它可以将相关性拉下来,以便您可以使用它们。 – corsiKa 2011-04-07 14:57:09

1

可以使用jarbrowser用于管理Java罐文件和Java类路径本

+0

+1不错的工具,但不允许我通过包搜索。 – Pushkar 2011-04-07 08:00:02

0

自己的解决方案是非常简单的。首先,我里面e.g创建文件夹:

C:\Program Files\Java\libraries\ 

在这里,我把,我需要用我所有的* .jar文件。 然后我修改:

PATH(modyfy also CLASSPATH or JAVA_HOME) 

系统变量,并添加上面显示该路径。

问题发生时,一个类是在两个不同的罐子,但我管理我的罐子,以避免这个问题。

现在,当java运行时,jvm可以找到我的类并抛出ClassNoFoundException。

3

如果使用猛砸这个脚本可能会有所帮助:

find . -name *.jar -exec bash -c "echo {} && jar tvf {} | grep MyClass" \; 
+0

看起来很有趣,但不幸的是我使用Windows。 – Pushkar 2011-04-07 08:00:29

0

逾期响应,但如果有人搜索也有类似的问题,我写了一个简单的工具,在几年前,我用所有的时间,这类问题。

它可以自由使用和开源。如果你觉得有用,让我知道,:-)

https://github.com/eurozulu/Findclass