Учитывая каталог, как мне узнать, где находится класс - PullRequest
1 голос
/ 14 февраля 2012

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

Ответы [ 5 ]

2 голосов
/ 14 февраля 2012

«Java-команды» (какими бы они ни были) обычно не вводятся в командной строке.Вы можете попробовать простой grep, но:

 # grep 'my.super.cool.Stuff' *.jar

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

1 голос
/ 14 февраля 2012

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

0 голосов
/ 15 февраля 2012

Может быть что-то вроде этого:

findclass.sh

#!/bin/sh

if [ 2 != $# ] ; then
     echo  "Usage: $0 directory class"
     exit 1
fi

for i in $1/*.jar; do
    if unzip -l $i | grep -q "$2.class"; then 
        echo "Found $2 in $i"
   fi
done
0 голосов
/ 15 февраля 2012

Если вы хотите знать, когда и где классы загружаются в JVM во время выполнения , вы можете использовать опцию -verbose:class в команде "java".

0 голосов
/ 15 февраля 2012

Посмотрите на "Швейцарский файловый нож" на Sourceforge (http://sourceforge.net/projects/swissfileknife/). Чтобы найти какой-нибудь класс с именем, скажем, QueryParameter, используйте

>sfk larc -dir "*.jar" +filter -+QueryParameter
gwt\gwt-dev.jar\\org\apache\xalan\lib\sql\QueryParameter.class

Файл JAR упоминается до двойной обратной косой черты, путь в JAR - после этого.

Как только вы привыкнете к компактному синтаксису SFK, вы будете использовать его для многих, многих вещей. Отличный компаньон для поиска, поиска и тому подобного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...