Это должно быть очень простым вопросом для Java-разработчиков, но что лучший способ состоит в том, чтобы найти соответствующим файлом банки, учитывая имя класса?
Например, данный "com.ibm.websphere.security.auth. WSSubject", как Вы разыскиваете соответствующий файл банки? ("Google" не является ответом, который я ищу!)
Документы Java не дают подсказки файла банки, и очевидно названия самих файлов банки не предлагают подсказки.
Должен быть 'поиск локальные банки', или своего рода 'зависимости автотвердости, прием в мире Java. Идеально, я ищу 'официальный' способ сделать это. Я, оказывается, нахожусь на машине окон без cygwin.
Растя на превосходный ответ даН , следующий сценарий решает проблему искаженного вывода в случае, если некоторые банки являются на самом деле поврежденными символьными ссылками (одновременно не пропуская надлежащие символьные ссылки), Это также ищет в текущем каталоге, если никакой аргумент не обеспечивается.
#!/usr/bin/env bash
if [[ ($# -ne 1) && ($# -ne 2) ]]
then
echo "usage is [110] <grep RegEx to look for in contents of jar> [<top-of-folder-hierarchy> or, if missing, current dir]"
else
REG_EXP=$1
DIR=${2:-.}
if [ ! -d $DIR ]; then
echo "directory [$DIR] does not exist";
exit 1;
fi
find "$DIR" -name "*.jar" -exec sh -c '
(test -e {})
exitStatus=$?
if [ "$exitStatus" -eq 0 ]; then # this is done to avoid broken symlinks
jar -tf {}|grep -i -H --label {} '$REG_EXP'
fi
' \;
fi
Существует также этот веб-сайт, который, кажется, полезен. http://www.findjar.com/
В окнах powershell Вы может использовать эту команду. Это перечисляет все файлы JAR, с которыми это встречается, но это имеет дополнительную строку, которую это очень легко определить, где это также находит Ваш класс.
Get-ChildItem -recurse -Filter *.jar | Foreach {echo В окнах powershell Вы может использовать эту команду. Это перечисляет все файлы JAR, с которыми это встречается, но это имеет дополнительную строку, которую это очень легко определить, где это также находит Ваш класс.
[110].fullname; c:\somepath\JDK\BIN\jar tvf В окнах powershell Вы может использовать эту команду. Это перечисляет все файлы JAR, с которыми это встречается, но это имеет дополнительную строку, которую это очень легко определить, где это также находит Ваш класс.
[110].fullname | Select-String -pattern "Cabbages.class"}