Apa cara termudah untuk melihat kelas, metode, properti, dll. Di dalam file jar? Saya mencari sesuatu yang setara dengan Lutz Roeder .NET Reflector - untuk Java
@salvob Anda tidak perlu tanda hubung seperti yang diambil setelahnya tardengan opsi wajib.
Tom Hawtin - tackline
2
FYI, Anda mungkin perlu menambahkan C:\Program Files\Java\jdk<version>\binvariabel lingkungan PATH sistem atau pengguna Anda sebelum dapat digunakan jarsebagai perintah sistem. (Di mana <version> adalah nomor build versi jdk Anda. Check in C:\Program Files\Java)
untuk melihat konten file non-kelas (seperti manifes) Anda ingin melakukan sesuatu seperti ini: tar -xOzf test.jarjar tf test.jar | grep MANIFEST
mPrinC
55
Saya biasanya membukanya dengan 7-Zip ... Ini memungkinkan setidaknya untuk melihat paket dan kelas dan sumber daya.
Haruskah saya perlu melihat metode atau bidang, saya akan menggunakan Jad tapi tentu saja, lebih baik mengandalkan JavaDoc (baik) ...
Sekarang, di suatu tempat di SO disebutkan beberapa plug-in Eclipse, untuk menemukan di mana file jar kelas berada, mungkin mereka dapat berbuat lebih banyak (mis. Apa yang Anda minta).
Apa yang saya gunakan secara pribadi adalah JD-GUI. Ini adalah 'dekompiler' gratis, karena memungkinkan Anda untuk melihat kode sumber, kelas, dan objek di kelas, serta melihat struktur file di menu pohon di sebelah kiri. Namun, itu tidak memungkinkan Anda untuk memodifikasi kelas secara langsung.
Ini berfungsi lintas platform sementara 7-Zip yang disebutkan dalam jawaban lain adalah khusus Windows.
Brad Cupit
Saya menggunakan Archive Utility pada OS X, bekerja dengan baik. Sebagian besar (un) utilitas zip harus berfungsi, terlepas dari platform.
Greenonline
23
Jika seseorang belum mengetahui hal ini, file JAR hanyalah file ZIP yang berisi kelas program, sumber daya, dll., Dan beberapa metadata. Anda dapat mengekstrak satu untuk melihat bagaimana itu disatukan.
Karenanya saya menggunakan unzipperintah yang mudah diingat dan digunakan.
unzip -l <jar-file-name>.jar
Misalnya, jika Anda memiliki file jar dengan nama test.jarmaka unzip -l test.jarakan mendaftar semua konten file jar.
Walaupun semua jawaban lain bagus, tetapi di sebagian besar dari mereka, Anda harus menggunakan beberapa perangkat lunak seperti 7 zipatau JDKatau alat gerhana lainnya sementara ini tidak mengharuskan Anda untuk memiliki salah satu dari ini s / w besar dan itu datang secara default di linux dan mac jadi sangat ringan dan mudah digunakan .
Anda juga bisa menggunakan zipinfo <your jar file>. jika OS Anda mendukung ini.
@ Terima kasih atas sarannya. akan menambahkannya ke jawaban saya
Opster Elasticsearch Ninja
1
Jika file explorer mendukung zip, mengganti nama stoples menjadi .zip juga berfungsi (misalnya pada windows)
Rhayene
16
Nama metode, bidang, dll.
Dengan menambahkan toples ke proyek dalam IDE, Anda biasanya dapat melihat metode dan nama bidang, tetapi bukan implementasi terperinci. NetBeans dapat melakukannya, Eclipse mungkin, IntelliJ mungkin, dll. Anda dapat menelusuri struktur tabung langsung di dalam IDE.
Hanya isinya
Untuk apa pun seperti melihat konten, Anda dapat menggunakan:
jar tvf jarfile.jar
winzip atau alat zip apa pun
Kode sumber
Untuk mengakses kode sumber, Anda akan menggunakan dekompiler seperti JAD atau salah satu dari frontend-nya atau decompiler lainnya. Jika kode tersebut dikaburkan, maka ...
Untuk melihat konten file, Anda dapat mengekstrak file dalam folder dengan:
jar -xvf file_name.jar
ini akan membuka zip file jar & meletakkan konten di direktori yang sama di mana Anda menjalankan ini.
Atau di Windows ganti nama file .jar menjadi .zip & kemudian Anda bisa unzip untuk mengekstrak & melihat konten file jar. Sebagai jar secara internal file zip.
Jika saya mengerti dengan benar, Anda ingin melihat tidak hanya kelas tetapi juga metode, properti, dan sebagainya. Satu-satunya alat yang saya tahu dapat melakukannya adalah Eclipse - jika Anda menambahkan jar ke proyek classpath, Anda akan dapat menelusuri kelas-kelasnya dengan metode dan properti menggunakan paket explorer biasa.
Bagaimanapun, ini adalah ide yang bagus untuk alat Java mandiri yang bagus
Perhatikan bahwa toples harus berada di folder "Perpustakaan yang direferensikan", bukan hanya "lib". Dan dalam kasus pustaka Apache Commons, Anda tidak menelusuri source.jar, Anda menelusuri yang asli dan kemudian melampirkan sumber ketika Eclipse bertanya.
Noumenon
4
Jad klunky dan tidak lagi dipertahankan. Saya telah beralih ke "Java Decompiler" , yang memiliki UI yang apik dan dukungan untuk fitur bahasa baru.
Setiap decompiler yang saya gunakan, berjalan ke kode yang tidak berhasil diurai. Bagi mereka, ini membantu untuk memahami kode byte Java yang dibongkar yang dihasilkan oleh alat JDK standar, javap .
Nah, file jar hanya file zip, jadi jika Anda unzip (dengan utilitas unzipping favorit Anda), Anda mendapatkan semua file di dalamnya.
Jika Anda ingin melihat ke dalam file kelas untuk melihat metode, Anda akan memerlukan alat untuk itu. Seperti yang dikatakan PhiLho, Eclipse dapat melakukan itu (secara default), dan saya pikir sebagian besar IDE Java mampu melakukannya.
Seret file jar tersebut ke dalam proyek Java. Salinan file jar muncul.
Klik kanan pada file jar, dan pilih "Build Path" -> "Add to Build Path".
File jar dipindahkan ke simpul "Referenced Libraries", tempat itu dapat dibuka dan dinavigasi di panel Project Explorer.
Jika melihat kode sumber juga merupakan masalah, buka pertanyaan baru.
Untuk navigasi pada level Jar-file (sebagai file zip) saya menggunakan 7zip yang bekerja dengan sangat baik, dan memungkinkan melihat dan mengedit entri yang bagus untuk pemecahan masalah.
Salah satu cara untuk melakukan ini adalah membuka perspektif dalam "Package explorer". Melakukan ini, Anda dapat melihat struktur tabung Anda dengan detail kelas. Untuk ini periksa folder perpustakaan di proyek Anda menggunakan paket explorer.
Window >> Show View >> Other >> Java >> Package Explorer
Cara lain adalah, Anda bisa menggunakan JarPlug sebagai plugin gerhana. Ini berfungsi di eclipse / springsource
Anda dapat membukanya dengan sebagian besar utilitas dekompresi hari ini, kemudian dapatkan sesuatu seperti DJ Java Decompiler jika Anda ingin melihat sumbernya.
Persyaratan saya adalah untuk melihat konten file (seperti file properti) di dalam toples, tanpa benar-benar mengekstraksi toples. Jika ada yang mencapai utas ini seperti saya, coba perintah ini -
Saya lebih suka JAR Browser , ia memiliki antarmuka yang sederhana di mana Anda dapat menelusuri beberapa JAR, dan mencari kelas tertentu di beberapa JAR secara bersamaan.
Ini bukan cara tercepat karena Anda harus menyeretnya ke gerhana Anda terlebih dahulu. Tetapi Anda akan memiliki penjelajahan kelas java penuh, bahkan dengan dekompilasi diaktifkan.
Saya telah menetapkan tindakan default di windows ke "Open with WinZip". Ini membuatnya mudah untuk mengelola JAR sebagai arsip. Anda bahkan dapat menambah / menghapus file secara manual.
Ini Jar Explorer cukup baik.
Mendukung tiga jenis dekompiler: JD, Procyon dan Fernflower.
Mengizinkan untuk mencari file dan duplikat di arsip java apa pun.
Juga pengguna dapat memodifikasi jar oleh file D & D dan mengedit beberapa file non-kelas.
Tolong jangan hanya memposting beberapa alat atau perpustakaan sebagai jawaban. Setidaknya tunjukkan bagaimana cara memecahkan masalah dalam jawaban itu sendiri.
Das_Geek
0
Anda bisa mencoba JarSpy . Ada versi plugin IDEA yang saya gunakan.
IDE Anda juga harus mendukung ini. IDE saya (SlickeEdit) menyebutnya "tag library." Cukup tambahkan pustaka tag untuk file jar, dan Anda harus dapat menelusuri kelas dan metode secara hierarkis.
Jawaban:
Menggunakan JDK,
jar -tf
akan mencantumkan file dalam toples.javap
akan memberi Anda lebih banyak detail dari file kelas tertentu.sumber
tar
dengan opsi wajib.C:\Program Files\Java\jdk<version>\bin
variabel lingkungan PATH sistem atau pengguna Anda sebelum dapat digunakanjar
sebagai perintah sistem. (Di mana <version> adalah nomor build versi jdk Anda. Check inC:\Program Files\Java
)jar tf test.jar | grep MANIFEST
Saya biasanya membukanya dengan 7-Zip ... Ini memungkinkan setidaknya untuk melihat paket dan kelas dan sumber daya.
Haruskah saya perlu melihat metode atau bidang, saya akan menggunakan Jad tapi tentu saja, lebih baik mengandalkan JavaDoc (baik) ...
Sekarang, di suatu tempat di SO disebutkan beberapa plug-in Eclipse, untuk menemukan di mana file jar kelas berada, mungkin mereka dapat berbuat lebih banyak (mis. Apa yang Anda minta).
[EDIT] Referensi ke utas SO. Bukan apa yang ditanyakan, tetapi entah bagaimana terkait, sehingga berguna: Java: Bagaimana saya tahu file jar mana yang akan digunakan diberi nama kelas?
sumber
Apa yang saya gunakan secara pribadi adalah JD-GUI. Ini adalah 'dekompiler' gratis, karena memungkinkan Anda untuk melihat kode sumber, kelas, dan objek di kelas, serta melihat struktur file di menu pohon di sebelah kiri. Namun, itu tidak memungkinkan Anda untuk memodifikasi kelas secara langsung.
Situs web JD-GUI: http://jd.benow.ca/
sumber
Karenanya saya menggunakan
unzip
perintah yang mudah diingat dan digunakan.unzip -l <jar-file-name>.jar
Misalnya, jika Anda memiliki file jar dengan nama
test.jar
makaunzip -l test.jar
akan mendaftar semua konten file jar.Walaupun semua jawaban lain bagus, tetapi di sebagian besar dari mereka, Anda harus menggunakan beberapa perangkat lunak seperti
7 zip
atauJDK
atau alat gerhana lainnya sementara ini tidak mengharuskan Anda untuk memiliki salah satu dari ini s / w besar dan itu datang secara default di linux dan mac jadi sangat ringan dan mudah digunakan .Anda juga bisa menggunakan
zipinfo <your jar file>
. jika OS Anda mendukung ini.sumber
Nama metode, bidang, dll.
Dengan menambahkan toples ke proyek dalam IDE, Anda biasanya dapat melihat metode dan nama bidang, tetapi bukan implementasi terperinci. NetBeans dapat melakukannya, Eclipse mungkin, IntelliJ mungkin, dll. Anda dapat menelusuri struktur tabung langsung di dalam IDE.
Hanya isinya
Untuk apa pun seperti melihat konten, Anda dapat menggunakan:
jar tvf jarfile.jar
Kode sumber
Untuk mengakses kode sumber, Anda akan menggunakan dekompiler seperti JAD atau salah satu dari frontend-nya atau decompiler lainnya. Jika kode tersebut dikaburkan, maka ...
sumber
Memperluas jawaban Tom Hawtin, Anda dapat mengirim daftar untuk memfilter kelas atau file yang diinginkan:
jar tf my-fat-jar-file.jar | grep filename
Ini harus bekerja pada bash / zsh dan similars, atau eshell emacs '.
Informasi tambahan: https://docs.oracle.com/javase/tutorial/deployment/jar/view.html
sumber
di atas hanya akan mencetak nama file .
Untuk melihat konten file, Anda dapat mengekstrak file dalam folder dengan:
ini akan membuka zip file jar & meletakkan konten di direktori yang sama di mana Anda menjalankan ini.
Atau di Windows ganti nama file .jar menjadi .zip & kemudian Anda bisa unzip untuk mengekstrak & melihat konten file jar. Sebagai jar secara internal file zip.
sumber
Gunakan WinRar . Ini akan membuka struktur folder untuk Anda secara utuh. Juga memungkinkan pengeditan dalam arsip, sambil mempertahankan jalur.
Lagipula, file JAR adalah arsip ZIP saja.
sumber
Jika Anda ingin melihat apa yang ada di dalamnya, cukup ganti nama sebagai opsi pertama di bawah ini ..
F2 & Rename to jarfile.zip
// Gunakan unzipper ...jar tvf jarfile.jar
jar tf jarfile.jar
sumber
Jika saya mengerti dengan benar, Anda ingin melihat tidak hanya kelas tetapi juga metode, properti, dan sebagainya. Satu-satunya alat yang saya tahu dapat melakukannya adalah Eclipse - jika Anda menambahkan jar ke proyek classpath, Anda akan dapat menelusuri kelas-kelasnya dengan metode dan properti menggunakan paket explorer biasa.
Bagaimanapun, ini adalah ide yang bagus untuk alat Java mandiri yang bagus
sumber
Jad klunky dan tidak lagi dipertahankan. Saya telah beralih ke "Java Decompiler" , yang memiliki UI yang apik dan dukungan untuk fitur bahasa baru.
Setiap decompiler yang saya gunakan, berjalan ke kode yang tidak berhasil diurai. Bagi mereka, ini membantu untuk memahami kode byte Java yang dibongkar yang dihasilkan oleh alat JDK standar, javap .
sumber
Nah, file jar hanya file zip, jadi jika Anda unzip (dengan utilitas unzipping favorit Anda), Anda mendapatkan semua file di dalamnya.
Jika Anda ingin melihat ke dalam file kelas untuk melihat metode, Anda akan memerlukan alat untuk itu. Seperti yang dikatakan PhiLho, Eclipse dapat melakukan itu (secara default), dan saya pikir sebagian besar IDE Java mampu melakukannya.
sumber
Dalam Eclipse 3.4 lakukan
Jika melihat kode sumber juga merupakan masalah, buka pertanyaan baru.
Untuk navigasi pada level Jar-file (sebagai file zip) saya menggunakan 7zip yang bekerja dengan sangat baik, dan memungkinkan melihat dan mengedit entri yang bagus untuk pemecahan masalah.
sumber
Salah satu cara untuk melakukan ini adalah membuka perspektif dalam "Package explorer". Melakukan ini, Anda dapat melihat struktur tabung Anda dengan detail kelas. Untuk ini periksa folder perpustakaan di proyek Anda menggunakan paket explorer.
Window >> Show View >> Other >> Java >> Package Explorer
Cara lain adalah, Anda bisa menggunakan JarPlug sebagai plugin gerhana. Ini berfungsi di eclipse / springsource
http://jar-plug.sourceforge.net/
sumber
Jika Anda berada di windows dan menggunakan PowerShell dan Anda mencari file dalam toples yang dapat Anda lakukan:
sumber
Anda dapat membukanya dengan sebagian besar utilitas dekompresi hari ini, kemudian dapatkan sesuatu seperti DJ Java Decompiler jika Anda ingin melihat sumbernya.
sumber
Bndtools menyediakan plugin penampil JAR gratis untuk Eclipse.
Tambahkan situs pembaruan Eclipse dan instal hanya penampil.
sumber
Persyaratan saya adalah untuk melihat konten file (seperti file properti) di dalam toples, tanpa benar-benar mengekstraksi toples. Jika ada yang mencapai utas ini seperti saya, coba perintah ini -
Ini bekerja dengan baik untuk saya!
sumber
Saya pikir Java Decomplier adalah pilihan terbaik yang dapat Anda unduh dari sini: http://jd.benow.ca/
sumber
Saya lebih suka JAR Browser , ia memiliki antarmuka yang sederhana di mana Anda dapat menelusuri beberapa JAR, dan mencari kelas tertentu di beberapa JAR secara bersamaan.
sumber
Eclipse 3.4 JDT
Ini bukan cara tercepat karena Anda harus menyeretnya ke gerhana Anda terlebih dahulu. Tetapi Anda akan memiliki penjelajahan kelas java penuh, bahkan dengan dekompilasi diaktifkan.
sumber
Saya telah menetapkan tindakan default di windows ke "Open with WinZip". Ini membuatnya mudah untuk mengelola JAR sebagai arsip. Anda bahkan dapat menambah / menghapus file secara manual.
sumber
Ini Jar Explorer cukup baik.
Mendukung tiga jenis dekompiler: JD, Procyon dan Fernflower.
Mengizinkan untuk mencari file dan duplikat di arsip java apa pun.
Juga pengguna dapat memodifikasi jar oleh file D & D dan mengedit beberapa file non-kelas.
sumber
Anda bisa mencoba JarSpy . Ada versi plugin IDEA yang saya gunakan.
sumber
IDE Anda juga harus mendukung ini. IDE saya (SlickeEdit) menyebutnya "tag library." Cukup tambahkan pustaka tag untuk file jar, dan Anda harus dapat menelusuri kelas dan metode secara hierarkis.
sumber
Di Mac ada Jarzilla
sumber
Saya menggunakan JarExplorer atau JarVisualizer .
sumber
Anda bisa mencoba JarNavigator untuk melihat dan mencari konten file jar.
sumber
java -xf some-j.jar
akan membuka zip file JAR.sumber
Anda juga dapat menggunakan Luyten - Sebuah Open Source Java Decompiler Gui
sumber