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
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
Jawaban:
Menggunakan JDK, jar -tf
akan mencantumkan file dalam toples. javap
akan memberi Anda lebih banyak detail dari file kelas tertentu.
tar
dengan opsi wajib.
C:\Program Files\Java\jdk<version>\bin
variabel lingkungan PATH sistem atau pengguna Anda sebelum dapat digunakan jar
sebagai perintah sistem. (Di mana <version> adalah nomor build versi jdk Anda. Check in C:\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?
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/
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 unzip
perintah yang mudah diingat dan digunakan.
unzip -l <jar-file-name>.jar
Misalnya, jika Anda memiliki file jar dengan nama test.jar
maka unzip -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
atau JDK
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.
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.
Untuk apa pun seperti melihat konten, Anda dapat menggunakan:
jar tvf jarfile.jar
Untuk mengakses kode sumber, Anda akan menggunakan dekompiler seperti JAD atau salah satu dari frontend-nya atau decompiler lainnya. Jika kode tersebut dikaburkan, maka ...
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
jar -tvf file_name.jar
di atas hanya akan mencetak nama file .
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.
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.
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
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
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.
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.
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.
Bndtools menyediakan plugin penampil JAR gratis untuk Eclipse.
Tambahkan situs pembaruan Eclipse dan instal hanya penampil.
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 -
unzip -p myjar.jar myfile.txt
Ini bekerja dengan baik untuk saya!
Saya pikir Java Decomplier adalah pilihan terbaik yang dapat Anda unduh dari sini: http://jd.benow.ca/
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.
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.
Saya menggunakan JarExplorer atau JarVisualizer .
Anda bisa mencoba JarNavigator untuk melihat dan mencari konten file jar.
Anda juga dapat menggunakan Luyten - Sebuah Open Source Java Decompiler Gui