Инструмент поиска классов Java - PullRequest
7 голосов
/ 07 апреля 2011

Любой, кто регулярно использует Java, знает, сколько неприятностей могут доставить нам несколько jar в classpath. Я ищу инструмент, который поможет мне -

  1. Поиск файлов классов внутри банок в Classpath
  2. Поиск файлов классов внутри банок в определенном месте
  3. Может быть, слишком много просить, но покажите мне, если один и тот же класс присутствует в нескольких банках.

Также нет необходимости говорить, что это должно быть быстро. Большинство инструментов, которые я оценил, работают очень медленно и не на должном уровне.

Любые инструменты для вышеуказанной цели очень ценятся.


В настоящее время я использую WinRar для достижения поиска (что, кстати, очень быстро) для поиска файлов классов внутри jar-файлов в определенном месте. Но нет способа использовать это для поиска в Classpath.

Ответы [ 6 ]

3 голосов
/ 07 апреля 2011

Если вы используете Bash, этот скрипт может быть полезен:

find . -name *.jar -exec bash -c "echo {} && jar tvf {} | grep MyClass" \;
1 голос
/ 07 апреля 2011

Если вы используете eclipse, то может пригодиться classfinder от IBM .Вы можете выполнить (нечеткий) поиск класса в (наборе) каталогов и получить весь jar, содержащий такой класс.

Не уверен насчет опции classpath, однако.

regards,
Guillaume

1 голос
/ 07 апреля 2011

Вы можете использовать jarbrowser для этого

0 голосов
/ 28 июля 2013

Поздний ответ, но на тот случай, если у кого-то возникнет похожая проблема, я несколько лет назад написал простой инструмент, который постоянно использую для решения подобных проблем.

Его можно использовать и открывать бесплатно.источник.Если вы найдете это полезным, дайте мне знать: -)

https://github.com/eurozulu/Findclass

0 голосов
/ 07 апреля 2011

Мое собственное решение для управления файлами java jars и java classpath действительно простое. Во-первых, я создаю папку внутри, например:

C:\Program Files\Java\libraries\

Здесь я положил все мои * .jar файлы, которые мне нужно использовать. Затем я изменяю:

PATH(modyfy also CLASSPATH or JAVA_HOME) 

системная переменная и добавьте этот путь, показанный выше.

Проблема возникает, когда один класс находится в двух разных банках, но я справился со своей банкой, чтобы избежать этой проблемы.

Теперь, когда java работает, jvm может найти мои классы, а ClassNoFoundException не генерируется.

0 голосов
/ 07 апреля 2011

Если вы используете Eclipse и они находятся на вашем пути к классам, вы можете использовать CapitalCaseControlSpace по своему усмотрению.

Например, если я хочу получить новый ApacheFanUtilityMethodizerFunctor (который, конечно, нужен всем)Я просто набираю AFUMF, а затем Ctrl + Space, и он заполняется для меня.Поскольку он уже находится на моем пути к классам, мне не нужно охотиться за ним, потому что он там.

Теперь, если его не было на моем пути к классам, и мне нужно было найти, в каком сосуде он находился для целейвключить его, а затем вернуться к WinRAR (или для меня, как правило, Google) я иду.

...