Lewati ke konten
LICENTIVO / INTEGRATION

Lisensi perangkat lunak Java: aktivasi dan ekspor yang dilindungi

Tambahkan aktivasi lisensi dan ekspor resmi ke aplikasi Java 17+. Simpan satu klien untuk seumur hidup aplikasi dan biarkan SDK mengelola kredensial dan detak jantung.

Java 17+Diperbarui

1. Siapkan produk dan lisensi

Mulailah dengan lisensi yang dikunci node dan fitur ekspor biasa. Tambahkan penggunaan terukur hanya setelah alur otorisasi dasar berfungsi.

Kuota menghitung aktivasi saat ini dan kembali setelah dilepas. Lisensi biasa tetap dihitung saat luring; lisensi mengambang juga mengembalikan kuota ketika sewanya berakhir.

  1. Salin ID produk dari Konsol > Produk. Buka kunci publik penandatanganan produk yang sama, lalu masukkan semua pasangan ID kunci/kunci publik ke kode inisialisasi untuk mengganti YOUR_PRODUCT_ID, YOUR_KEY_ID, dan YOUR_PUBLIC_KEY. Integrasi cepat juga dapat menghasilkan kode ini. Tidak perlu berkas konfigurasi; SDK memakai https://www.licentivo.com secara bawaan.
  2. Di Integrasi cepat, buat atau pilih produk. Aktifkan fitur bernama ekspor dalam kebijakannya dan siapkan lisensi pengujian.

2. Instal SDK

Publikasi sedang diverifikasi.

3. Melindungi ekspor riil

Inisialisasikan SDK saat aplikasi dimulai atau diaktifkan. Baca kunci pelanggan dari formulir aktivasi, lalu berikan ID produk dan kunci tepercaya. Pertahankan klien sampai aplikasi ditutup. Letakkan RunFeature pada operasi bisnis nyata dan ganti ekspor dengan fungsi Anda.

Java · Quickstart.java
import licentivo.Client;

import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Map;

/** A single protected operation. Keep Client alive while your application runs. */
public final class Quickstart {
// BEGIN LICENTIVO PRODUCT
// Copy Product ID and all key ID/public key pairs from Console > Products > Signing public keys.
private static final String PRODUCT_ID = "YOUR_PRODUCT_ID";
private static final Map<String,String> TRUSTED_KEYS = Map.of("YOUR_KEY_ID", "YOUR_PUBLIC_KEY");
// END LICENTIVO PRODUCT

    private static String setting(String name, String fallback) {
        String value = System.getenv(name);
        return value == null || value.isEmpty() ? fallback : value;
    }

    static void exportReport(String path) throws Exception {
        // Replace this write with your existing, non-metered export operation.
        Files.writeString(Path.of(path), "A report generated by the licensed application.\n");
    }

    public static void main(String[] args) {
        // In a GUI, read the activation input. Later starts pass an empty key.
        try (var client = Client.openProduct(PRODUCT_ID, TRUSTED_KEYS,
                setting("LICENTIVO_LICENSE_KEY", ""), error -> System.err.println("Background verification: " + error.getMessage()))) {
            String feature = setting("LICENTIVO_FEATURE", "export");
            String path = setting("LICENTIVO_OUTPUT", "licensed-report.txt");
            if (setting("LICENTIVO_METERED", "").equals("1"))
                client.runMeteredFeature(feature, 1, setting("LICENTIVO_OPERATION_ID", ""), () -> exportReport(path));
            else
                client.runFeature(feature, () -> exportReport(path));
            System.out.println("License OK: " + feature + " is available\nExport completed: " + path);
        } catch (Exception error) {
            System.err.println(error.getMessage());
            System.exit(2);
        }
    }
}

4. Biarkan klien tetap hidup sampai dimatikan

Contoh baris perintah ini melakukan satu operasi dan keluar. Dalam aplikasi desktop, buka satu klien saat startup, aktifkan fitur callback dari tindakan ekspor, dan tutup klien hanya saat aplikasi keluar.

Setelah aktivasi, permulaan selanjutnya dapat membiarkan LICENTIVO_LICENSE_KEY kosong dan memulihkan kredensial pribadi di bawah lokasi pengguna dan cache yang sama. Simpan kredensial tersebut di direktori data aplikasi pengguna. Penutupan menghentikan detak jantung dan mengembalikan kursi terapung; pintu keluar normal tidak boleh menonaktifkan perangkat yang terkunci node.

Akses offline hanya tersedia jika kebijakan mengizinkannya dan izin yang ditandatangani tetap valid. Fitur yang sudah habis masa berlakunya atau ditolak harus tetap diblokir. Operasi terukur memerlukan koneksi jaringan.

Untuk Swing atau JavaFX, mulai otorisasi dari thread UI dan susun pemberitahuan latar belakang ke thread UI. Jaga agar Klien pemilik tetap hidup sepanjang masa hidup; coba-dengan-sumber daya menutupnya saat keluar.

5. Jalankan dan verifikasi hasilnya

Salin ID produk dari Konsol > Produk. Buka kunci publik penandatanganan produk yang sama, lalu masukkan semua pasangan ID kunci/kunci publik ke kode inisialisasi untuk mengganti YOUR_PRODUCT_ID, YOUR_KEY_ID, dan YOUR_PUBLIC_KEY. Integrasi cepat juga dapat menghasilkan kode ini. Tidak perlu berkas konfigurasi; SDK memakai https://www.licentivo.com secara bawaan.

  1. Konfirmasikan bahwa lisensi yang valid dengan akses ekspor menghasilkan licensed-report.txt.
  2. Hapus LICENTIVO_LICENSE_KEY dan jalankan kembali menggunakan akun pengguna yang sama: kredensial yang disimpan akan dipulihkan.
  3. Setel LICENTIVO_FEATURE ke fitur yang tidak ada dalam lisensi dan LICENTIVO_OUTPUT ke nama file baru. Program harus melaporkan penolakan tanpa membuat file tersebut.
  4. Uji mulai ulang offline hanya dengan izin bertanda tangan yang diizinkan dan belum kedaluwarsa. Jangan mengabaikan pemeriksaan fitur yang gagal setelah kesalahan penyegaran latar belakang.
Windows · PowerShell
javac -cp licentivo-sdk-0.11.6.jar -d out Quickstart.java
$env:LICENTIVO_LICENSE_KEY = 'YOUR_LICENSE_KEY'
java -cp "out;licentivo-sdk-0.11.6.jar" Quickstart
Linux / macOS · Bash
javac -cp licentivo-sdk-0.11.6.jar -d out Quickstart.java
LICENTIVO_LICENSE_KEY=YOUR_LICENSE_KEY java -cp "out:licentivo-sdk-0.11.6.jar" Quickstart

Masalah integrasi yang umum

Periksa ID produk, semua pasangan ID kunci/kunci publik, dan lisensi pelanggan. Kunci publik milik produk; lisensi dan kredensial perangkat bersifat terpisah. Jangan bagikan kunci uji atau API Key pengelolaan.

Fitur ditolak, batas perangkat tercapai, atau lisensi kedaluwarsa: periksa lisensi dan kebijakan di konsol, lalu tampilkan kesalahan SDK kepada pelanggan. Otorisasi yang gagal tidak boleh memanggil fungsi ekspor.

RunFeature memeriksa akses fitur; varian terukur mencadangkan dan menyelesaikan penggunaan yang dikonfigurasi. Gunakan ID operasi yang stabil untuk setiap pekerjaan bisnis nyata dan periksa hasil yang tahan lama sebelum memulihkan pekerjaan yang terputus.

Kelas tidak ditemukan: jauhkan keduanya dan SDK JAR di classpath runtime. Windows menggunakan titik koma di antara entri; Linux dan macOS menggunakan titik dua.