Konversi jar ke deb

Konversi JAR menjadi DEB

Kemas Java JAR untuk sistem Debian dengan jpackage, dpkg-deb, atau FPM.

Konversi file JAR secara online

Kami belum punya konverter online khusus untuk JAR ke DEB, tetapi Anda bisa mengonversi file JAR secara online ke format berikut:

Ingin mengonversi JAR ke DEB?

Beri tahu kami. Kami memilih konversi berikutnya yang akan ditambahkan berdasarkan minat.

Bagaimana mengkonversi jar ke deb berkas

Sistem Debian atau Ubuntu memerlukan DEB ketika aplikasi Java harus diinstal melalui apt, pusat software grafis, atau repositori package internal. Operasi ini biasanya merupakan repackaging: JAR tetap berada di dalam DEB, sementara metadata Debian, jalur instalasi, dan launcher opsional ditambahkan.

Apa itu format JAR

File JAR adalah Java archive berbasis ZIP yang berisi file .class terkompilasi, resource, informasi dependency, dan sering kali META-INF/MANIFEST.MF. JAR yang dapat dieksekusi biasanya mendeklarasikan entri manifest Main-Class dan dapat dijalankan dengan java -jar application.jar.

Java developer, build system seperti Maven dan Gradle, IDE, serta distributor aplikasi menggunakan file JAR untuk program standalone, library, plugin, command-line tool, dan build artifact. JAR dapat memerlukan Java release tertentu, dependency JAR eksternal, environment variable, working directory, file konfigurasi, atau native library.

Apa itu format DEB

File DEB adalah Debian binary package yang digunakan oleh Debian, Ubuntu, Linux Mint, dan distribution terkait. Secara internal, file ini merupakan archive ar yang berisi debian-binary, control archive terkompresi dengan package metadata, dan data archive terkompresi yang berisi file-file untuk diinstal.

Berbeda dari JAR, DEB mencatat package name, version, architecture, description, dependency, dan installed file path. Package manager dapat menginstal, menghapus, meng-upgrade, dan melacak file-file tersebut. Package aplikasi Java dapat mendeklarasikan Java runtime yang diperlukan serta menginstal command, desktop entry, atau system service yang menjalankan aplikasi.

Pilih metode packaging

jpackage biasanya merupakan opsi terbaik untuk aplikasi Java yang akan didistribusikan. Tool ini disertakan dalam JDK modern dan dapat membuat DEB dengan application metadata, launcher, serta, jika dikonfigurasi, Java runtime yang dibundel. Tool ini berjalan di Linux dan ditujukan untuk packaging, bukan sekadar mengganti nama atau mengompresi ulang JAR.

dpkg-deb adalah low-level tool native ketika JAR harus menggunakan system Java runtime dan layout package harus dikontrol secara manual. FPM merupakan alternatif praktis untuk internal package yang repeatable. Archive manager seperti Ark atau 7-Zip dapat memeriksa file-file ini, tetapi tidak dapat membuat Debian package metadata yang benar.

Tidak ada online JAR-to-DEB converter yang secara umum dapat diandalkan. Sebuah service tidak dapat dengan aman menyimpulkan Java-version requirement, Debian dependency, launch command, filesystem ownership, service, atau desktop integration. Meng-upload JAR proprietary juga dapat mengekspos application code, embedded credential, atau private asset; buat package secara lokal sebagai gantinya.

Membuat DEB dengan jpackage

  1. Instal JDK yang menyediakan jpackage, lalu verifikasi dengan jpackage --version. Build aplikasi terlebih dahulu agar main JAR dan setiap dependency JAR yang diperlukan tersedia dalam satu directory seperti dist/.
  2. Jalankan command yang serupa dengan ini pada Debian-based Linux system:
    jpackage --type deb \
      --name MyApp \
      --input dist \
      --main-jar application.jar \
      --main-class com.example.Main \
      --app-version 1.0.0 \
      --linux-package-name myapp \
      --linux-deb-maintainer 'Maintainer <maintainer@example.com>'

    Hilangkan --main-class jika manifest main JAR sudah menyediakan Main-Class. Tambahkan opsi seperti --icon, --linux-shortcut, dan --description jika aplikasi memerlukan desktop integration. Package yang dihasilkan biasanya architecture-specific karena launcher dan bundled runtime dapat berisi native file.

  3. Periksa dan uji file yang dihasilkan dengan dpkg-deb --info myapp_1.0.0_amd64.deb, dpkg-deb --contents myapp_1.0.0_amd64.deb, dan sudo apt install ./myapp_1.0.0_amd64.deb. Nama file dan architecture yang tepat bergantung pada JDK dan build host.

jpackage mungkin memerlukan Debian packaging utility seperti dpkg-deb dan fakeroot. Bundled runtime memperbesar ukuran package, tetapi menghindari keharusan bagi target system untuk menyediakan instalasi Java yang kompatibel.

Membuat package secara manual dengan dpkg-deb

  1. Instal native packaging tool: sudo apt install dpkg-dev.
  2. Buat staging tree dan salin JAR ke application-private directory:
    mkdir -p myapp/DEBIAN myapp/usr/share/myapp myapp/usr/bin
    cp application.jar myapp/usr/share/myapp/application.jar
  3. Buat myapp/DEBIAN/control dengan metadata yang valid. Continuation line dalam long description harus diawali satu spasi:
    Package: myapp
    Version: 1.0.0
    Section: utils
    Priority: optional
    Architecture: all
    Depends: default-jre-headless
    Maintainer: Package Maintainer <maintainer@example.com>
    Description: Java application
     Packaged Java application launched from a Debian command
  4. Buat launcher di myapp/usr/bin/myapp:
    #!/bin/sh
    exec java -jar /usr/share/myapp/application.jar "$@"

    Jadikan file tersebut executable dengan chmod 755 myapp/usr/bin/myapp.

  5. Build, periksa, dan instal package:
    dpkg-deb --build myapp myapp_1.0.0_all.deb
    dpkg-deb --info myapp_1.0.0_all.deb
    dpkg-deb --contents myapp_1.0.0_all.deb
    sudo apt install ./myapp_1.0.0_all.deb

Gunakan Architecture: all hanya ketika package tidak berisi CPU-specific native library, launcher, atau bundled runtime. Gunakan nilai yang sesuai seperti amd64 atau arm64 jika sebaliknya. Ganti default-jre-headless dengan dependency tertentu seperti openjdk-17-jre-headless ketika aplikasi memerlukan Java release tersebut. Untuk beberapa dependency JAR, salin file-file tersebut ke dalam package dan sesuaikan launcher classpath atau gunakan startup script yang sudah ada pada aplikasi.

Menggunakan FPM untuk build yang lebih singkat

Setelah melakukan staging aplikasi di bawah myapp/usr dan membuat launcher, FPM dapat membuat DEB dari directory tersebut:

fpm -s dir -t deb -n myapp -v 1.0.0 \
  --architecture all \
  --depends default-jre-headless \
  --description 'Packaged Java application' \
  -C myapp usr

Instal FPM dan Ruby prerequisite-nya sesuai current packaging instruction dari distribution tersebut. FPM tidak menemukan Java dependency atau application behavior yang benar secara otomatis, jadi periksa hasilnya dengan dpkg-deb dan uji instalasi serta penghapusan pada setiap distribution yang didukung.

Batasan kompatibilitas

Repackaging tidak mengonversi Java bytecode menjadi native Linux code. Target tetap memerlukan compatible runtime kecuali jpackage membundel salah satunya, dan JAR yang dikompilasi untuk Java release yang lebih baru tidak akan berjalan pada runtime yang lebih lama. DEB juga tidak secara otomatis mengatasi external library yang hilang, native dependency, writable configuration location, service permission, atau environment variable yang diperlukan.

Aplikasi yang memerlukan desktop integration mungkin memerlukan file .desktop dan icon; aplikasi background mungkin memerlukan systemd unit dan maintainer script yang dirancang dengan cermat. Uji fresh installation, upgrade, removal, command-line argument, file ownership, dan operasi menggunakan normal user account. Sign package atau publikasikan melalui signed Debian repository ketika mendistribusikannya di luar local testing.

JAR vs DEB: perbandingan format

Bagaimana format JAR dan DEB dibandingkan pada properti yang paling penting untuk konversi ini.

Perbandingan format file JAR dan DEB
Properti .JAR Java Archive .DEB Debian binary package
Kompresi Keduanya Keduanya
Rasio kompresi Sedang Sedang
Enkripsi Ya Tidak
Arsip terpisah Tidak Tidak
Catatan pemulihan Tidak Tidak
Dukungan sistem operasi Luas Luas
Ukuran file umum Sedang Kecil
Standar terbuka Ya Ya
Diperkenalkan 1996 1995
Pengembang Oracle (originally Sun Microsystems) Debian Project
Tipe MIME application/java-archive application/vnd.debian.binary-package

Konversi berkas jar lainnya

Konversi terbalik

Konversi ke deb
dari format lain

Bagikan di media sosial: