Найти файл банки, учитывая имя класса?

Это должно быть очень простым вопросом для Java-разработчиков, но что лучший способ состоит в том, чтобы найти соответствующим файлом банки, учитывая имя класса?

Например, данный "com.ibm.websphere.security.auth. WSSubject", как Вы разыскиваете соответствующий файл банки? ("Google" не является ответом, который я ищу!)

Документы Java не дают подсказки файла банки, и очевидно названия самих файлов банки не предлагают подсказки.

Должен быть 'поиск локальные банки', или своего рода 'зависимости автотвердости, прием в мире Java. Идеально, я ищу 'официальный' способ сделать это. Я, оказывается, нахожусь на машине окон без cygwin.

62
задан 1 October 2009 в 00:07

3 ответа

Растя на превосходный ответ даН , следующий сценарий решает проблему искаженного вывода в случае, если некоторые банки являются на самом деле поврежденными символьными ссылками (одновременно не пропуская надлежащие символьные ссылки), Это также ищет в текущем каталоге, если никакой аргумент не обеспечивается.

#!/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
0
ответ дан 31 October 2019 в 13:45

Существует также этот веб-сайт, который, кажется, полезен. http://www.findjar.com/

1
ответ дан 31 October 2019 в 13:45

В окнах 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"}
1
ответ дан 31 October 2019 в 13:45

Другие вопросы по тегам:

Похожие вопросы: