SORU
27 AĞUSTOS 2009, PERŞEMBE


Bir yerde JAR dosyaları onlarca içinde bir sınıf bulmak?

Nasıl jar dosyalarının çok sayıda içinde belirli bir sınıf adı bulmak istiyorsunuz?

(Gerçek bir sınıf ismi arıyoruz, başvuru sınıflar değil.)

CEVAP
27 AĞUSTOS 2009, PERŞEMBE


Unix

jar (unzip -v) grep find komutları.

Örneğin, aşağıda verilen bir ad ile eşleşen tüm sınıf dosyaları listeler:

for i in *.jar; do jar -tvf "$i" | grep -Hsi ClassName; done

Eğer arama yapmak istediğiniz Java arşiv tam listesini biliyorsanız, (sembolik) aynı dizin kullanarak bağlantıları yerleştirin.

Ya da belirli bir sınıf adı içeren find (büyük / küçük harf duyarlı) JAR dosyayı bulmak için kullanın:

find path/to/libs -name '*.jar' -exec grep -Hls ClassName {} \;

Örneğin, arşiv adı IdentityHashingStrategy içeren bulmak için:

$ find . -name "*.jar" -exec grep -Hsli IdentityHashingStrategy {} \;
./trove-3.0.3.jar

Eğer KAVANOZ olabilirher yerdesistemi locate komut kullanılabilir:

for i in $(locate "*.jar");
  do echo $i; jar -tvf $i | grep -Hsi ClassName;
done

Windows

Açık bir komut, dizin (veya dizin atası) KAVANOZ içeren isteminde, dosyalar:

for /R %G in (*.jar) do @jar -tvf %G | find "ClassName" > NUL && echo %G

İşte nasıl çalışır:

  1. for /R %G in (*.jar) do - KAVANOZ dosyalar üzerinde döngü, geçme dizinleri özyinelemeli olarak; %G. dosya adını saklamak
  2. @jar -tvf %G | - verilen arşiv içindeki dosya isimlerinin listesi ve standart çıktıya sonuçları yazmak için Java Arşiv komutu çalıştırın; @ sembol komutu çağırma baskı bastırır.
  3. find "ClassName" > NUL arama standart giriş, borulu çıktısı jar komutu için verilen sınıf adı; ayarlar ERRORLEVEL 1 ıff maç var değil mi (yoksa 0).
  4. && echo %G - ERRORLEVEL sıfır, standart çıktı (konsol) için Java arşiv dosyası adı yazın ıff.

Web

Ya da bu arama motoru deneyin:

Grafik

Ya da bir grafik yazılımı kullanarak oluşturun:

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FD2097

    FD2097

    21 HAZİRAN 2009
  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • Vsauce

    Vsauce

    30 Temmuz 2007