내 마음 속에는 내가 찾고있는 기호를 찾아야한다. 대신 상징을 찾지 않습니다. 내가 어디로 잘못 가고 있니? .jar 파일 중 하나에 기호가 있음을 압니다.상당량의 .jar 파일에서 기호를 찾기위한 Bash 스크립트
1 ARRAY=(`find ${PWD} -name '*.jar'`);
2 SYMBOL=$1;
3 for i in ${ARRAY[@]};
4 do
5 JAR=`jar -tf $i`;
6 GREPED=`echo ${JAR} | grep -s ${SYMBOL} | tr -d ' '`;
7 if [ "${GREPED}" != "" ]; then
8 echo $GREPED
9 fi
7 done
아마 jar 명령 옵션을 잘못 이해하고 있습니까?
말 재미있는 Android SDK를 다운로드하고 주어진 클래스 com.android.email.mail.Flag을 찾을 수 없다는 도구를 실행합니다. 이것은 jar
명령의 출력을 printh한다
$ ./script.sh Flag
: 그래서와 위의 스크립트를 실행합니다. 위의 jar 파일 줄 8이
echo $i
이 될 수 있습니다.
"기호"는 무엇을 의미합니까? 'jar -tf ...'는'.jar' 파일에 포함 된 * 파일 *을 나열합니다. 일부 경우 (클래스 이름 대부분) 기호와 관련이있을 수 있지만 같은 것은 아닙니다. 나는'.jar' 파일 (또는 그 문제에 대한'.class' 파일)에서 심볼 이름을 찾는 특별한 방법을 모른다. – twalberg
예를 들어, 'Java 클래스에 대한 참조'에 대해 불평하는 정적 분석기를 사용할 수 없습니다. 그 중 하나가 'com.android.email.mail.Flag'입니다. 이 클래스 나 기호가 정의 된 위치를 알고 싶습니다. 어느 항아리인지, 그래서 나는 classpath에 추가 할 수있다. –
예제 입력 및 필수 출력을 포함하도록 질문을 편집하십시오. 'JAR = ... '에 대한 여러분의 반복 작업 중 하나에서 무엇이 나오고 있습니까? ('JAR = $ (jar -tf $ i)'와 함께 현대적인 명령을 사용하십시오.) 그리고 마지막으로, 사람들이 이러한 잘못된 형식의 주석으로 질문을 명확히 읽지 못하게하십시오! 승인?! 행운을 빕니다. :-) – shellter