Konversi JAR menjadi EXE
Buat launcher Windows atau self-contained installer dari Java JAR.
Konversi file JAR secara online
Kami belum punya konverter online khusus untuk JAR ke EXE, tetapi Anda bisa mengonversi file JAR secara online ke format berikut:
Bagaimana mengkonversi jar ke exe berkas
- File terkompresi
- Peringkat: 5.0/5
Pengguna Windows mungkin memerlukan EXE ketika aplikasi Java harus dijalankan dengan klik ganda atau didistribusikan kepada orang yang tidak memiliki pengalaman dengan command line Java. Hasilnya biasanya berupa launcher atau installer Windows, bukan konversi bytecode Java menjadi machine code native.
Format JAR
JAR (Java Archive) adalah paket berbasis ZIP yang berisi file .class terkompilasi, library dependensi, gambar, file konfigurasi, dan metadata. Java compiler, IDE seperti IntelliJ IDEA dan Eclipse, serta build tool seperti Maven dan Gradle membuat file JAR.
JAR yang dapat dijalankan memiliki entri manifest seperti Main-Class: com.example.Main dan dapat dimulai dengan java -jar app.jar. Komputer memerlukan Java runtime yang kompatibel; JDK juga menyediakan runtime yang diperlukan, sedangkan JRE mandiri mungkin cukup untuk distribusi Java yang lebih lama. Beberapa JAR merupakan library, bukan aplikasi, dan tidak memiliki entry point untuk dijalankan.
Format EXE
EXE adalah file Windows Portable Executable yang digunakan untuk aplikasi, launcher, installer, dan service. EXE launcher dapat menyediakan startup dengan klik ganda, ikon, informasi versi Windows, penanganan command line, pemeriksaan versi Java, dan pengaturan jendela console.
EXE wrapper tetap menjalankan program Java melalui JVM. Application image atau installer dapat menyertakan Java runtime pribadi, sehingga pengguna tidak perlu menginstal Java secara terpisah. Output tetap khusus untuk Windows dan tidak berjalan secara native di macOS atau Linux.
Cara membuat EXE dari JAR
Gunakan Launch4j untuk launcher ringan
- Instal Launch4j dari distribusi project resminya dan verifikasi aplikasi terlebih dahulu dengan
java -jar app.jar. - Buka Launch4j dan atur Basic → Output file ke path seperti
dist\MyApp.exe. - Atur Basic → Jar ke
app.jar. Jika JAR tidak memiliki entri manifestMain-Class, tentukan entry point di bawah Basic → Main class. - Di bawah JRE, atur rentang versi Java yang diperlukan. Untuk mendistribusikan runtime pribadi, atur JRE → Bundled JRE path ke direktori seperti
runtimedan distribusikan direktori tersebut di samping EXE. - Secara opsional, pilih file
.icodi bawah Header → Icon, tambahkan informasi versi, dan pilih mode console yang sesuai. - Build EXE dan uji pada sistem Windows yang bersih. Tanpa runtime yang dibundel, sistem tersebut harus memiliki Java runtime yang kompatibel.
Launch4j membuat launcher; tool ini tidak memperbaiki dependensi yang hilang, mengubah bytecode Java menjadi native code, atau secara otomatis menyediakan runtime lengkap. Path relatif dan direktori bundled-runtime harus sesuai dengan layout yang didistribusikan kepada pengguna.
Gunakan jpackage untuk aplikasi mandiri
jpackage disertakan dalam rilis JDK modern dan membuat application image serta installer Windows. Tool ini lebih sesuai ketika aplikasi harus menyertakan runtime dan metadata instalasinya sendiri.
- Build dan uji aplikasi, lalu tempatkan JAR utama serta JAR dependensi yang diperlukan di direktori input seperti
dist. Distribution task Maven atau Gradle dapat menghasilkan direktori ini. - Konfirmasikan main class. Gunakan entri manifest jika tersedia, atau berikan secara eksplisit dengan
--main-class. - Jalankan packaging di Windows. Jenis installer seperti
exedanmsimemerlukan prasyarat Windows packaging yang didukung oleh versi JDK, biasanya WiX; application image tidak memerlukan installer tool. - Jalankan command yang serupa dengan:
jpackage --type exe --input dist --name MyApp --main-jar app.jar --main-class com.example.Main --dest release --win-shortcut --win-menu - Gunakan
--icon app.icountuk ikon dan--app-version 1.0.0untuk versi yang ditampilkan. Uji instalasi dan startup pada mesin Windows tanpa development JDK.
Untuk direktori aplikasi portabel, bukan installer, gunakan --type app-image. Image yang dihasilkan menyertakan runtime pribadi dan biasanya jauh lebih besar daripada wrapper Launch4j.
Keterbatasan kompatibilitas dan kualitas
- Aplikasi memerlukan entry point yang valid, setiap dependensi yang diperlukan, dan modul Java yang kompatibel. Launcher tidak dapat memperbaiki class yang hilang, resource path yang tidak valid, atau versi Java yang tidak kompatibel.
- Uji dengan rilis Java dan arsitektur CPU yang ditujukan untuk pengguna. JNI atau library native lainnya mungkin memerlukan build 32-bit dan 64-bit yang terpisah serta binary khusus Windows.
- Membundel runtime meningkatkan ukuran distribusi, tetapi menghilangkan ketergantungan pada Java runtime yang diinstal secara terpisah. Periksa lisensi vendor runtime dan kebijakan security update sebelum melakukan redistribusi.
- EXE dan installer baru yang tidak ditandatangani dapat memicu Microsoft Defender atau peringatan keamanan lainnya. Code-signing pada launcher dan installer dengan certificate yang sesuai mengurangi peringatan, tetapi tidak menjamin bahwa peringatan tersebut akan hilang.
- Untuk executable yang benar-benar native, bukan JVM launcher, gunakan tool seperti GraalVM Native Image jika aplikasi mendukungnya. Reflection, dynamic class loading, JNI, dan beberapa fitur framework mungkin memerlukan konfigurasi atau mungkin tidak berfungsi.
Layanan konversi online
Tidak ada layanan online generik yang dapat diandalkan untuk menentukan entry point, dependensi, runtime, library native, dan kebutuhan Windows packaging aplikasi Java hanya dari JAR yang diunggah. Situs konversi arsip mungkin mengganti nama atau membongkar JAR, tetapi hal itu tidak membuat EXE yang berfungsi. Gunakan tool lokal seperti Launch4j atau jpackage untuk software proprietary atau executable; mengunggah JAR juga dapat mengekspos source, kredensial yang tertanam, atau data rahasia lainnya.
JAR vs EXE: perbandingan format
Bagaimana format JAR dan EXE dibandingkan pada properti yang paling penting untuk konversi ini.
| Properti | .JAR Java Archive | .EXE Portable Executable |
|---|---|---|
| Standar terbuka | Ya | Tidak |
| Kompresi | Keduanya | Tanpa kompresi |
| Ukuran file umum | Sedang | Besar |
| Terbuka di browser web | Tidak | Tidak |
| Pengeditan lanjutan | Terbatas | Tidak dapat diedit langsung |
| Dukungan metadata | Dasar | Sangat lengkap |
| Dapat dibaca teks biasa | Tidak | Tidak |
| Paling cocok untuk | Penyematan dalam aplikasi | Penyematan dalam aplikasi |
| Diperkenalkan | 1996 | 1993 |
| Pengembang | Oracle (originally Sun Microsystems) | Microsoft |
| Tipe MIME | application/java-archive | — |