Bir jar dosyası içindeki sınıfları, yöntemleri, özellikleri vb. Görüntülemenin en kolay yolu nedir? Java için çok kullanışlı Lutz Roeder .NET Reflektör'e eşdeğer bir şey arıyorum
Bir jar dosyası içindeki sınıfları, yöntemleri, özellikleri vb. Görüntülemenin en kolay yolu nedir? Java için çok kullanışlı Lutz Roeder .NET Reflektör'e eşdeğer bir şey arıyorum
Yanıtlar:
JDK kullanıldığında, jar -tf
kavanozdaki dosyalar listelenir. javap
size belirli bir sınıf dosyasından daha fazla ayrıntı verecektir.
tar
Zorunlu seçeneklerle birlikte tireye ihtiyacınız yoktur .
C:\Program Files\Java\jdk<version>\bin
kullanabilmeniz için sisteminize veya kullanıcı PATH ortam değişkeninize eklemeniz gerekebilir jar
. (Burada <sürüm> jdk sürüm oluşturma numaranızdır. Check-in yapın C:\Program Files\Java
)
jar tf test.jar | grep MANIFEST
Genellikle 7-Zip ile açarım ... En azından paketleri, sınıfları ve kaynakları görmeyi sağlar.
Yöntemleri veya alanları görmem gerekirse, Jad'ı kullanırdım ama elbette, (iyi) JavaDoc'a güvenmek daha iyidir ...
Şimdi, SO'da bir yerde, bir sınıfın hangi kavanoz dosyasında bulunduğunu bulmak için bazı Eclipse eklentilerinden bahsedildi, belki daha fazlasını yapabilirler (yani, ne istersen).
[EDIT] SO iş parçacığına referans. Ne sorulmadı, ama bir şekilde ilişkili, bu yüzden yararlı: Java: Bir sınıf adı verildiğinde hangi jar dosyasının kullanılacağını nasıl bilebilirim?
Kişisel olarak kullandığım şey JD-GUI. Bu, kaynak kodunu, sınıfları ve sınıflardaki nesneleri görmenizi ve soldaki ağaç menüsünde dosya yapısını görmenizi sağladığından ücretsiz bir 'decompiler' dir. Ancak, sınıfları doğrudan değiştirmenize izin vermez.
JD-GUI'nin web sitesi: http://jd.benow.ca/
Birinin bunu zaten bilmemesi durumunda, JAR dosyası yalnızca programın sınıflarını, kaynaklarını vb. İçeren bir ZIP dosyası ve bazı meta verilerdir. Nasıl bir araya getirildiğini görmek için birini çıkarabilirsiniz.
Bu yüzden unzip
hatırlaması ve kullanımı kolay bir komut kullanıyorum.
unzip -l <jar-file-name>.jar
Eğer ada sahip bir kavanoz dosyanız varsa Örneğin, test.jar
sonra unzip -l test.jar
kavanoz dosyanın tüm içeriğini listeler.
Diğer tüm cevaplar büyük olmakla birlikte, ancak bunların çoğunda, sen gibi bazı yazılım kullanmak zorunda kalacak 7 zip
ya da JDK
bu gerektirmez iken w / bu büyük s herhangi birine sahip diğer bazı aracı tutulması veya ve linux varsayılan olarak geliyor ve mac böylece çok hafif ve kullanımı kullanışlı .
Ayrıca kullanabilirsiniz zipinfo <your jar file>
. İşletim sisteminiz bunu destekliyorsa.
IDE'deki bir projeye bir kavanoz ekleyerek, genellikle yöntemleri ve alan adlarını görebilirsiniz, ancak ayrıntılı uygulamayı göremezsiniz. NetBeans bunu yapabilir, muhtemelen Eclipse, IntelliJ muhtemelen, vb. Jar yapısını doğrudan IDE içinden tarayabilirsiniz.
İçeriği görüntüleme gibi herhangi bir şey için şunları kullanabilirsiniz:
jar tvf jarfile.jar
Kaynak koduna erişmek için JAD gibi bir kod çözücü veya ön uçlarından biri veya başka bir kod çözücü kullanabilirsiniz. Kod gizlenmişse, ...
Tom Hawtin yanıtını genişleterek, istediğiniz sınıfı veya dosyaları filtrelemek için girişe izin verebilirsiniz:
jar tf my-fat-jar-file.jar | grep filename
Bu, bash / zsh ve benzerleri veya emacs'ın eshell'i üzerinde çalışmalıdır.
Ek bilgiler: https://docs.oracle.com/javase/tutorial/deployment/jar/view.html
jar -tvf file_name.jar
yukarıda yalnızca dosyaların adları yazdırılır .
Dosyaların içeriğini görüntülemek için , bir klasördeki dosyaları şu şekilde ayıklayabilirsiniz :
jar -xvf file_name.jar
bu jar dosyasını açıp içeriği çalıştırdığınız dizine koyacaktır.
Veya Windows'ta .jar dosyasını .zip olarak yeniden adlandırın ve ardından jar dosyasının içeriğini ayıklayıp görüntülemek için sıkıştırmayı açabilirsiniz. Kavanoz dahili olarak bir zip dosyası olduğu için.
WinRar kullanın . Klasör yapısını sizin için sağlam bir şekilde açacaktır. Ayrıca yolları korurken arşiv içi düzenlemeye de izin verir.
Afterall, bir JAR dosyası sadece ZIP arşivi.
İçinde ne olduğunu görmek istiyorsanız, aşağıdaki ilk seçenek olarak yeniden adlandırın.
F2 & Rename to jarfile.zip
// Herhangi bir sıkıştırmayı açma ...
jar tvf jarfile.jar
jar tf jarfile.jar
Doğru anlıyorsam, sadece sınıfları değil, aynı zamanda yöntemleri, özellikleri ve benzerlerini de görmek istersiniz. Bunu yapabileceğimi bildiğim tek araç Eclipse - proje sınıfyoluna bir kavanoz eklerseniz, her zamanki paket gezginini kullanarak sınıflarına yöntem ve özelliklerle göz atabilirsiniz.
Her neyse, bu iyi bir bağımsız Java aracı için iyi bir fikir
Jad klunky ve artık korunmuyor. Kaygan bir arayüz ve yeni dil özellikleri desteği olan "Java Decompiler" e geçtim .
Kullandığım her decompiler, başarılı bir şekilde decompile etmeyen koda gidiyor. Bunlar için, standart JDK aracı olan javap tarafından üretilen demonte Java bayt kodunu anlamaya yardımcı olur .
Bir jar dosyası sadece bir zip dosyasıdır, bu yüzden onu açtığınızda (en sevdiğiniz unzipping yardımcı programınızla), içindeki tüm dosyaları alırsınız.
Yöntemleri görmek için sınıf dosyalarının içine bakmak isterseniz, bunun için bir araca ihtiyacınız olacaktır. PhiLho'nun belirttiği gibi, Eclipse bunu yapabilir (varsayılan olarak) ve çoğu Java IDE'nin bunu yapabileceğini düşünüyorum.
Eclipse 3.4'te
Kaynak kodunu görmek de sorun teşkil ediyorsa, yeni bir soru açın.
Jar dosyası düzeyinde gezinme için (zip dosyası olarak) Çok iyi çalışan 7zip kullanıyorum ve sorun giderme için harika girişleri görmeye ve düzenlemeye izin veriyorum.
Bunu yapmanın bir yolu perspektifi "Paket gezgini" nde açmaktır. Bunu yaparken kavanozunuzun yapısını sınıf detayları ile görebilirsiniz. Bunun için paket gezginini kullanarak projenizdeki kütüphane klasörünü kontrol edin.
Pencere >> Görünümü Göster >> Diğer >> Java >> Paket Gezgini
Başka bir yol, JarPlug'u bir tutulma eklentisi olarak kullanabilirsiniz. Bu tutulma / kaynak kaynağında çalışır
Bu günlerde çoğu dekompresyon yardımcı programıyla açabilirsiniz, ardından kaynağı görüntülemek istiyorsanız DJ Java Decompiler gibi bir şey elde edebilirsiniz.
Bndtools , Eclipse için ücretsiz bir JAR görüntüleyici eklentisi sağlar.
Eclipse güncelleme sitesini ekleyin ve yalnızca görüntüleyiciyi yükleyin.
Benim gereksinimim kavanozun içinde bir dosya içeriğini (bir özellik dosyası gibi), aslında kavanoz çıkarmadan görüntülemekti. Biri benim gibi bu konuya ulaşmışsa, şu komutu deneyin -
unzip -p myjar.jar myfile.txt
Bu benim için iyi çalıştı!
Java Decomplier'ı buradan indirebileceğiniz en iyi seçenek olduğunu düşünüyorum: http://jd.benow.ca/
JAR Tarayıcısını tercih ederim , birden fazla JAR'a göz atabileceğiniz ve aynı anda birden fazla JAR'da belirli bir sınıfı arayabileceğiniz basit bir arayüze sahiptir.
Windows'ta varsayılan eylemi "WinZip ile aç" olarak ayarladım. Bu, JAR'ları arşiv olarak yönetmeyi kolaylaştırır. Hatta elle dosya ekleyebilir / kaldırabilirsiniz.
Bu Jar Explorer yeterince iyi.
Üç decompiler tipini destekler: JD, Procyon ve Fernflower.
Herhangi bir java arşivinde dosya ve kopyaların aranmasına izin verir.
Ayrıca kullanıcı jar ile D&D dosyalarını değiştirebilir ve bazı sınıf dışı dosyaları düzenleyebilir.
Mac'te Jarzilla var
JarExplorer veya JarVisualizer kullanıyorum .
Bir jar dosyasının içeriğini görüntülemek ve aramak için JarNavigator'ı deneyebilirsiniz .