1. उत्पाद और लाइसेंस तैयार करें
डिवाइस-बद्ध लाइसेंस और सामान्य export फ़ीचर से शुरू करें। बुनियादी अनुमति प्रक्रिया चलने के बाद उपयोग गणना जोड़ें।
डिवाइस कोटा वर्तमान सक्रियणों से गिना जाता है और रिलीज़ पर लौटता है। सामान्य लाइसेंस ऑफ़लाइन भी गिने जाते हैं; फ्लोटिंग लाइसेंस की लीज़ समाप्त होने पर भी कोटा अपने आप लौटता है।
- कंसोल > उत्पाद से उत्पाद ID कॉपी करें। उसी उत्पाद की हस्ताक्षर सार्वजनिक कुंजियाँ खोलें और हर कुंजी ID/सार्वजनिक कुंजी जोड़ी को आरंभिक कोड में डालें; YOUR_PRODUCT_ID, YOUR_KEY_ID और YOUR_PUBLIC_KEY बदलें। त्वरित एकीकरण यह कोड भी बना सकता है। उत्पाद कॉन्फ़िगरेशन फ़ाइल नहीं चाहिए; SDK डिफ़ॉल्ट रूप से https://www.licentivo.com से जुड़ता है।
- त्वरित एकीकरण में उत्पाद बनाएँ या चुनें। नीति में export फ़ीचर सक्षम करें और परीक्षण लाइसेंस तैयार करें।
2. SDK स्थापित करें
प्रकाशन की जाँच जारी है।
3. वास्तविक निर्यात सुरक्षित करें
अपने ऐप के शुरू होने या सक्रियण पर SDK आरंभ करें। सक्रियण फ़ॉर्म से ग्राहक की कुंजी पढ़ें और उत्पाद ID तथा विश्वसनीय कुंजियाँ दें। ऐप बंद होने तक क्लाइंट रखें। वास्तविक कार्य के प्रवेश पर RunFeature लगाकर निर्यात उदाहरण की जगह अपना फ़ंक्शन दें।
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. ऐप बंद होने तक क्लाइंट जीवित रखें
यह कमांड-लाइन उदाहरण एक काम करके बंद होता है। डेस्कटॉप ऐप में स्टार्टअप पर एक क्लाइंट खोलें, निर्यात क्रिया से फ़ीचर कॉलबैक बुलाएँ और ऐप के निकास पर ही क्लाइंट बंद करें।
सक्रियण के बाद उसी उपयोगकर्ता और कैश स्थान से LICENTIVO_LICENSE_KEY खाली देकर निजी क्रेडेंशियल बहाल कर सकते हैं। क्रेडेंशियल उपयोगकर्ता की ऐप-डेटा डायरेक्टरी में रखें। बंद करना हार्टबीट रोकता है और फ़्लोटिंग सीट लौटाता है। सामान्य निकास पर डिवाइस-बद्ध पंजीकरण निष्क्रिय न करें।
ऑफ़लाइन उपयोग तभी उपलब्ध है जब नीति अनुमति देती हो और हस्ताक्षरित अनुमति मान्य हो। समाप्त अनुमति या अस्वीकृत फ़ीचर बंद रहना चाहिए। गणना ऑपरेशन के लिए नेटवर्क आवश्यक है।
Swing या JavaFX में अनुमति प्रक्रिया UI थ्रेड से अलग शुरू करें और पृष्ठभूमि सूचनाएँ UI थ्रेड पर पहुँचाएँ। विंडो के पूरे जीवनकाल में Client रखें; try-with-resources निकास पर इसे बंद करता है।
5. चलाएँ और परिणाम जाँचें
कंसोल > उत्पाद से उत्पाद ID कॉपी करें। उसी उत्पाद की हस्ताक्षर सार्वजनिक कुंजियाँ खोलें और हर कुंजी ID/सार्वजनिक कुंजी जोड़ी को आरंभिक कोड में डालें; YOUR_PRODUCT_ID, YOUR_KEY_ID और YOUR_PUBLIC_KEY बदलें। त्वरित एकीकरण यह कोड भी बना सकता है। उत्पाद कॉन्फ़िगरेशन फ़ाइल नहीं चाहिए; SDK डिफ़ॉल्ट रूप से https://www.licentivo.com से जुड़ता है।
- मान्य export अधिकार वाले लाइसेंस से licensed-report.txt बनने की पुष्टि करें।
- LICENTIVO_LICENSE_KEY खाली करके उसी उपयोगकर्ता से फिर चलाएँ; सहेजा क्रेडेंशियल बहाल होना चाहिए।
- LICENTIVO_FEATURE में अनुपस्थित फ़ीचर और LICENTIVO_OUTPUT में नया फ़ाइल नाम दें। प्रोग्राम अस्वीकृति बताए और वह फ़ाइल न बनाए।
- ऑफ़लाइन पुनः शुरुआत केवल नीति की अनुमति और अभी मान्य हस्ताक्षरित अनुमति से जाँचें। पृष्ठभूमि अपडेट त्रुटि के बाद असफल फ़ीचर जाँच को दरकिनार न करें।
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" Quickstartjavac -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सामान्य एकीकरण समस्याएँ
उत्पाद ID, हर कुंजी ID/सार्वजनिक कुंजी जोड़ी और ग्राहक लाइसेंस जाँचें। सार्वजनिक कुंजियाँ उत्पाद की हैं; लाइसेंस और डिवाइस प्रमाण अलग हैं। परीक्षण कुंजियाँ या प्रबंधन API Key वितरित न करें।
फ़ीचर अस्वीकृत, डिवाइस सीमा पूरी या लाइसेंस समाप्त हो तो कंसोल में लाइसेंस और नीति जाँचें। ग्राहक को SDK त्रुटि दिखाएँ। असफल अनुमति पर निर्यात फ़ंक्शन न चलाएँ।
RunFeature फ़ीचर अधिकार जाँचता है; गणना वाला विकल्प निर्धारित उपयोग आरक्षित करके हिसाब पूरा करता है। हर वास्तविक काम की स्थिर ऑपरेशन ID रखें और बाधित काम बहाल करने से पहले स्थायी परिणाम जाँचें।
Class न मिले तो रनटाइम classpath में out और SDK JAR दोनों रखें। Windows में इनके बीच सेमीकोलन और Linux/macOS में कोलन इस्तेमाल होता है।