Konversi JAR menjadi JAVA
Ekstrak source yang disematkan atau decompile class JAR menjadi file source Java yang dapat digunakan.
Konversi file JAR secara online
Kami belum punya konverter online khusus untuk JAR ke JAVA, tetapi Anda bisa mengonversi file JAR secara online ke format berikut:
Bagaimana mengkonversi jar ke java berkas
- Pemrograman
- Belum ada peringkat.
Source files diperlukan ketika JAR adalah satu-satunya salinan library atau aplikasi Java yang tersedia dan kodenya harus diperiksa, diaudit, dimodifikasi, atau dibangun ulang. Sebagian besar JAR rilis berisi file .class yang telah dikompilasi, sehingga pemulihan file .java biasanya memerlukan dekompilasi, bukan konversi file secara langsung.
Isi file JAR
JAR (Java Archive) adalah archive berbasis ZIP yang digunakan oleh developer Java, build tools, dan vendor aplikasi untuk mendistribusikan library, plugin, dan aplikasi. JAR biasanya berisi compiled classes, resources, metadata dependency, dan META-INF/MANIFEST.MF; executable JAR dapat mendeklarasikan startup class di dalam manifest tersebut.
JDK tools, Maven, Gradle, Eclipse, dan IntelliJ IDEA dapat membuat atau menggunakan JAR. Archive terpisah bernama name-sources.jar sering kali berisi source files asli dan sebaiknya digunakan daripada melakukan dekompilasi pada compiled JAR.
Apa itu file JAVA
Tidak ada format biner “JAVA” yang terpisah. File .java adalah source code Java plain-text yang berisi classes, interfaces, methods, package declarations, dan imports. File ini dapat diedit dan dikompilasi dengan javac, dengan syarat library yang diperlukan dan Java release level yang sesuai tersedia.
Satu JAR biasanya menghasilkan banyak source files. Foldernya harus sesuai dengan nama package: com.example.Main berada di com/example/Main.java. Java mengharuskan top-level class public menggunakan filename yang sama dengan nama class tersebut.
Ekstrak source yang sudah ada terlebih dahulu
Daftar isi archive dengan perintah JDK jar:
jar tf app.jar
Jika daftar tersebut berisi file .java, ekstrak file-file itu ke empty working directory:
mkdir recovered-srccd recovered-srcjar xf ../app.jar
Jika source archive yang sesuai tersedia, ekstrak archive tersebut sebagai gantinya:
jar xf app-sources.jar
Jangan mengira resources seperti .properties, file XML, images, atau service definitions sebagai Java source. Ekstrak resources tersebut jika diperlukan oleh project, tetapi resources itu tidak dapat dikonversi menjadi kode .java yang bermakna.
Dekompilasi compiled classes
Jika JAR hanya berisi file .class, gunakan Java decompiler desktop. CFR adalah opsi command-line yang sesuai dan umumnya menangani Java bytecode yang lebih baru dengan lebih baik daripada banyak decompiler lama. Download CFR dari official project site, lalu jalankan:
java -jar cfr.jar app.jar --outputdir recovered-src
CFR menulis file .java yang dipulihkan di dalam recovered-src. Untuk opsi graphical, buka JAR di JD-GUI dan pilih File → Save All Sources; JD-GUI membuat ZIP archive yang harus diekstrak sebelum file-file tersebut dibuka di IDE.
IntelliJ IDEA dapat menampilkan compiled classes untuk inspeksi, tetapi CFR atau JD-GUI lebih disarankan jika diperlukan source tree yang dapat diekspor. Untuk sample kecil, public, dan tidak sensitif, browser services seperti Decompiler.com dapat melakukan dekompilasi JAR tanpa instalasi lokal; periksa ketentuan penyimpanan dan privasinya sebelum mengunggah apa pun.
Batasan kompilasi dan pemulihan
Decompiled output bukan source project asli. Bytecode tidak mempertahankan comments, formatting, sebagian besar local variable names, test sources, build scripts, version-control history, dan sebagian generic type information. Obfuscation dapat mengganti nama yang bermakna dengan identifier seperti a dan b.
File yang dipulihkan mungkin tidak langsung dapat dikompilasi. Tambahkan original dependencies dari JAR, generated code, annotation processors, resources, dan compiler options; kemudian kompilasikan untuk Java release yang digunakan oleh class asli. Versi class-file yang lebih baru mungkin memerlukan JDK yang lebih baru dan decompiler yang mendukung versi tersebut.
Multi-release JAR dapat berisi alternate class implementations di bawah META-INF/versions/, dan shaded JAR dapat menggabungkan dependencies bersama application code. Tinjau package structure dan manifest sebelum menganggap setiap class yang dipulihkan sebagai bagian dari satu source project.
Simpan JAR yang bersifat private, milik customer, berlisensi, atau sensitif terhadap keamanan di mesin lokal, bukan mengunggahnya ke online decompiler. Lakukan dekompilasi hanya pada software yang Anda miliki atau yang Anda berwenang untuk inspeksi; kode yang dipulihkan tetap tunduk pada ketentuan license dan copyright aslinya.
Sederhananya, tidak mungkin mengonversi JAR ke JAVA secara langsung.
Jadi, tidak ada yang disebut pengonversi jar ke java atau pengonversi online gratis. jar ke .java converter dapat ditemukan.
JAR vs JAVA: perbandingan format
Bagaimana format JAR dan JAVA dibandingkan pada properti yang paling penting untuk konversi ini.
| Properti | .JAR Java Archive | .JAVA Java source code file |
|---|---|---|
| Standar terbuka | Ya | Sebagian terbuka |
| Kompresi | Keduanya | Tanpa kompresi |
| Ukuran file umum | Sedang | Kecil |
| Terbuka di browser web | Tidak | Tidak |
| Pengeditan lanjutan | Terbatas | Mudah |
| Dukungan metadata | Dasar | Dasar |
| Dapat dibaca teks biasa | Tidak | Ya |
| Paling cocok untuk | Penyematan dalam aplikasi | Produksi profesional |
| Diperkenalkan | 1996 | 1995 |
| Pengembang | Oracle (originally Sun Microsystems) | Oracle (Java platform; originally Sun Microsystems) |
| Tipe MIME | application/java-archive | text/x-java-source |