Ekstrak kode sumber dari file .jar


172

Apakah ada cara untuk mengekstrak kode sumber dari file .jar yang dapat dieksekusi (Java ME)?


3
Tetapi perhatikan bahwa melakukan ini mungkin ilegal tergantung pada apakah Anda memiliki hak cipta atas toples, negara tempat Anda tinggal, dan tujuan Anda melakukannya.
Richard

2
Jika itu open source, dapatkan sumbernya dari pengembang. Kalau tidak, "Kepatuhan apa pun dengan EULA akan dihargai".
Andrew Thompson

Periksa dekompiler procyon. Unduh jarnya untuk mendekompilasi file jar. Saya telah memberikan langkah-langkah di bawah ini
nitin angadi

Jawaban:


146

Gunakan JD GUI . Buka aplikasi, seret dan taruh file JAR Anda ke dalamnya.


6
apakah ada cara untuk mendapatkan kode sumber dari .jar tanpa JD GUI?
Zulqurnain Jutt

@ZulqurnainJutt digunakan seperti yang disebutkan dalam jawaban @ elachancejar xf filename.jar
Arvind Sridharan

46

Anda dapat mengekstrak file jar dengan perintah:

jar xf filename.jar

Referensi: Dokumentasi JAR Oracle


18
Ini sama dengan mengganti nama filename.jarmenjadi filename.jar.zipdan kemudian hanya membuka ritsletingnya.
Mathias Bynens

27
Ini tidak mengekstrak kode sumber. Itu mengekstrak kode sumber yang dikompilasi.
0xcaff

5
@caffinatedmonkey, ia mengekstrak kode sumber saat toples berisi file java, misalnya toples dengan nama yang biasanya diakhiri dengan "-sumber". Itu memang hanya mengekstrak file .class ketika toples tidak mengandung file sumber java.
edwardmp

37

Saya percaya ini bisa dilakukan dengan sangat mudah. Anda selalu dapat mengekstrak file sumber (file Java) dari file jar ke zip.

Langkah-langkah untuk mendapatkan sumber file jar sebagai zip:

  1. Unduh JAD dari http://techieme.in/resources-needed/ dan simpan di setiap
    lokasi di sistem Anda.
  2. Seret dan lepas tabung yang Anda inginkan sumbernya di JAD. 3 JAD UI akan terbuka dengan semua struktur paket dalam format pohon.
  3. Klik pada menu File dan pilih save to jar sources.
  4. Ini akan menyimpan sumber sebagai zip dengan nama yang sama dengan toples.

Semoga ini membantu.

Tautan itu mati karena beberapa alasan sehingga menambahkan tautan dari tempat Anda dapat mengunduh JDGUI


1
@Nitesh ... Saya akan memposting tautan yang dihosting di situs web saya ... silakan unduh dari sana
dharam

4
Versi dalam tautan techieme berfungsi dengan baik, terima kasih!
DerStrom8

29

JAR Anda mungkin berisi sumber dan javadoc, dalam hal ini Anda dapat menggunakannya jar xf my.jaruntuk mengekstraknya.

Kalau tidak, Anda dapat menggunakan dekompiler seperti yang disebutkan dalam jawaban adarshr:

Gunakan JD GUI . Buka aplikasi, seret dan taruh file JAR Anda ke dalamnya.


21
Perhatikan bahwa file .jar sebenarnya file .zip dan dapat dibuka dengan alat ZIP apa pun.
Chris Nava

11

Saya tahu ini pertanyaan lama. Masih berpikir itu akan membantu seseorang

1) Buka folder file jar Anda.

2) ubah ekstensi itu menjadi .zip.

3) Anda baik untuk pergi dan dapat dengan mudah mengekstraknya hanya dengan mengklik dua kali.

Catatan: Saya menguji ini di MAC, itu berhasil. Semoga ini akan bekerja pada windows juga.


2
@JCodex, saya sedang melakukan proyek penelitian pada alat analisis sentimen "opinionfinder" dan tabungnya memang mengandung kedua file java DAN kelas. jadi komentar Anda tidak 100% benar. Saya tahu itu biasanya hanya berisi .class tetapi tidak dalam kasus ini setidaknya
wired00

2
Solusi Anda hanya akan mengekstrak file .class bukan kode sumber.
Carlos S

Tampak JD-GUI adalah alat multi-platform yang benar-benar mendekompilasi kode dan menunjukkan kode sumber untuk kelas di semua paket. Saya mencobanya dan bisa mendapatkan kode sumber dalam sedetik di MacOS. Saya sudah menginstal Java 8. Anda bisa mendapatkannya di jd.benow.ca Tidak yakin apakah itu berfungsi untuk proyek besar.
Carlos Sá

1
perlu kode sumber yang tidak disediakan dengan cara yang Anda jelaskan
chiragchavda.ks

3

Lakukan hal berikut pada kotak linux Anda di mana java bekerja (jika Anda suka cara terminal dalam melakukan sesuatu)

cd ~
mkdir decompiled_code && cd decompiled_code
wget https://bitbucket.org/mstrobel/procyon/downloads/procyon-decompiler-0.5.36.jar
java -jar procyon-decompiler-0.5.36.jar /Path/to/your/jar -o .

CATATAN : seperti yang dikomentari @Richard "ini mungkin ilegal tergantung pada apakah Anda memiliki hak cipta atas toples, negara tempat Anda tinggal, dan tujuan Anda melakukannya."


Untuk file kelas tertentu, Anda dapat melakukan java -jar procyon-decompiler-0.5.36.jar paket / dari / the / java / class.class> className.java
nitin angadi

0

AndroChef Java Decompiler menghasilkan kode yang sangat bagus yang dapat Anda gunakan langsung di proyek Anda ...


-2

Alat di atas mengekstrak toples. Juga ada beberapa alat dan perintah lain untuk mengekstrak toples. Tapi AFAIK Anda tidak bisa mendapatkan kode java jika kode kasus telah dikaburkan.


7
Jawaban terbesar
fnc12

-6

misalkan file JAR Anda ada di C: \ Documents and Settings \ mmeher \ Desktop \ jar dan nama file JAR adalah xx.jar, lalu tuliskan dua perintah di bawah ini di command prompt:

1> cd C: \ Documents and Settings \ mmeher \ Desktop \ jar

2> jar xf xx.jar


-6

-Tutup file .jar ke .zip (Di windows cukup ubah ekstensi) -Unzip folder .zip -Anda akan mendapatkan file .java yang lengkap


3
Sebagai catatan kecil tentang metode ini ... Memang benar bahwa file jar adalah file zip yang bagus. Namun, unziping jar kemungkinan besar akan menghasilkan file * .class, yaitu file java "dikompilasi". Dimungkinkan untuk "mendekompilasi" file kelas ke file java normal. Fungsi ini termasuk dalam banyak IDE
Daniel Hernandez

ini hanya akan membuka kunci file kelas
Harshil
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.