"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पेश है मुफ़्त जावा यूटिलिटी पैकेज

पेश है मुफ़्त जावा यूटिलिटी पैकेज

2024-11-07 को प्रकाशित
ब्राउज़ करें:314

Introducing Free Java Utility Package

जावा बैकएंड डेवलपर के लिए एक तेज़ और उपयोग में आसान प्रोग्रामिंग टूलकिट

एक प्रशासक और डेवलपर के रूप में अपने पेशेवर जीवन में, मुझे अनगिनत फ्रीवेयर और ओपन सोर्स उत्पादों से कई बार लाभ हुआ है। इसलिए मेरे लिए भी इस समुदाय में योगदान देना स्वाभाविक है।

जावा कक्षाओं का यह संग्रह विभिन्न परियोजनाओं के दौरान बनाया गया था और इसे और विकसित किया जाएगा। मुझे आशा है कि यह टूल आपकी भी अच्छी सेवा करेगा।

https://java-util.k43.ch

डिज़ाइन लक्ष्य

  • उपयोग में आसानी: कक्षाएं और विधियां लचीली और उपयोग में सरल होनी चाहिए।
  • कोई यूआई कॉल नहीं: इस टूलकिट को पृष्ठभूमि कार्यों या सर्वर प्रक्रियाओं के लिए उपयोग करने की अनुमति देने के लिए उपयोगकर्ता इंटरफ़ेस के बिना सब कुछ करें।
  • तेज़: कोड को यथासंभव निष्पादन योग्य लिखें।
  • I/O की तुलना में मेमोरी के उपयोग को प्राथमिकता दें: आज की दुनिया में, मेमोरी अब एक सीमित कारक नहीं रह गई है। इसलिए, मेमोरी में कई ऑपरेशन किए जा सकते हैं जहां (अस्थायी) फ़ाइलों का उपयोग अतीत में किया गया था (उदाहरण के लिए केडीबी SQL SELECT से डेटा संरचना बनाता है, KFile ऑपरेशन ज्यादातर मेमोरी में होते हैं)।
  • व्यापक लॉगिंग का उपयोग करें: आपके कोड को डीबग करने में सहायता के लिए पूरे कोड में KLog.debug() फ़ंक्शन का भारी उपयोग किया जाता है। विकास के दौरान वस्तुओं के आंतरिक क्षेत्र मान दिखाने के लिए प्रत्येक वर्ग में पाई जाने वाली toString() विधियों का उपयोग करें।
  • प्लेटफ़ॉर्म स्वतंत्रता: सब कुछ प्लेटफ़ॉर्म स्वतंत्र लिखें।
  • आवश्यकताएँ न्यूनतम करें: जावा एसई मानक पुस्तकालयों के साथ बने रहें। अत्यंत आवश्यक होने पर केवल बाहरी JAR फ़ाइलों का उपयोग करें (उदाहरण के लिए KSMTPMailer, JDBC ड्राइवर)।

लॉगिंग: सरल लेकिन शक्तिशाली

  • डिबग, जानकारी और त्रुटि संदेशों के लिए लॉगिंग जटिलता को कम करता है।
  • किसी अतिरिक्त लाइब्रेरी की आवश्यकता के बिना मानक जावा एसई लॉगिंग क्लास का उपयोग करता है।
  • प्रत्येक लॉग रिकॉर्ड में एक सटीक समय टिकट और स्रोत कोड स्थान शामिल होता है।
  • मानक कंसोलहैंडलर और फाइलहैंडलर के अलावा, आउटपुट को किसी भी जेडीबीसी डेटाबेस पर भेजा जा सकता है या त्रुटियों को एसएमटीपी होस्ट पर भेजा जा सकता है।
  • पांच लॉगिंग फ़ॉर्मेटर प्रदान किए गए हैं: टेबुलर लाइन, सीएसवी, जेएसओएन, वाईएएमएल और एक्सएमएल।
public static void main(String[] args) {

  KLog.info("Start");

  int result = 0;

  try {
    result = 10 / 0;
  } catch (Exception e) {
    KLog.error(e);
  }

  KLog.debug("Result is "   result);
}
2024-09-16T07:17:11.095 D main[1]:ch.k43.util.KLog:open:459                            ===== Application started 2024-09-16T07:17:11.048 =====
2024-09-16T07:17:11.111 D main[1]:ch.k43.util.KLog:open:460                            Java Utility Package (Freeware) ch.k43.util Version 2024.09.15
2024-09-16T07:17:11.112 D main[1]:ch.k43.util.KLog:open:463                            Homepage java-util.k43.ch - Please send any feedback to [email protected]
2024-09-16T07:17:11.122 D main[1]:ch.k43.util.KLog:open:466                            Host ab-macbook-pro (10.0.0.105)
2024-09-16T07:17:11.122 D main[1]:ch.k43.util.KLog:open:467                            OS platform Mac OS X (Version 14.6.1/aarch64)
2024-09-16T07:17:11.123 D main[1]:ch.k43.util.KLog:open:471                            OS disk space total 3.63 TB, free 2.37 TB, usable 2.37 TB
2024-09-16T07:17:11.123 D main[1]:ch.k43.util.KLog:open:474                            Java version 21 (OpenJDK 64-Bit Server VM - Eclipse Adoptium)
2024-09-16T07:17:11.123 D main[1]:ch.k43.util.KLog:open:477                            Java CPUs 10
2024-09-16T07:17:11.124 D main[1]:ch.k43.util.KLog:open:481                            Java heap maximum 16.00 GB, current 1.00 GB, used 7.68 MB, free 1016.32 MB
2024-09-16T07:17:11.124 D main[1]:ch.k43.util.KLog:open:485                            Java locale de/CH, time UTC  02:00
2024-09-16T07:17:11.125 D main[1]:ch.k43.util.KLog:open:488                            Java classpath ../bin/:../lib/angus-mail-2.0.3.jar:../lib/jakarta.mail-api-2.1.3.jar:../lib/org.json.20230618.jar:../lib/h2-2.2.224.jar:../lib/jakarta.activation-api-2.1.3.jar:../lib/angus-activation-2.0.2.jar
2024-09-16T07:17:11.125 I main[1]:Test:main:9                                          Start
2024-09-16T07:17:11.125 E main[1]:Test:main:16                                         ===> java.lang.ArithmeticException: / by zero
2024-09-16T07:17:11.126 E main[1]:Test:main:16                                         ===> Stack[1]: Test.main(Test.java:14)
2024-09-16T07:17:11.126 D main[1]:Test:main:19                                         Result is 0

डेटाबेस: किसी भी JDBC डेटाबेस तक पहुंचें

  • आवश्यक JDBC ड्राइवर को लोड करता है और किसी भी SQL कथन को निष्पादित करता है।
  • किसी भी JDBC अनुरूप डेटाबेस का उपयोग किया जा सकता है।
  • कच्चे जावा प्रारूप में डेटा पुनर्प्राप्त करें (पंक्तियाँ ArraryList के रूप में, कॉलम Java ऑब्जेक्ट के रूप में)।
  • परिणाम को JSON, YAML, XML, CSV या सारणीबद्ध स्ट्रिंग के रूप में सेट करें।
try (KDB db = new KDB(KDB.JDBC_H2, "jdbc:h2:mem:mydb", "", "")) {

  KLog.abort(!db.isConnected(), "Error: "   db.getErrorMessage());

  db.exec("CREATE TABLE ADDRESSES (SEQUENCE INT AUTO_INCREMENT, LASTNAME VARCHAR(20), FIRSTNAME VARCHAR(20))");
  db.exec("INSERT INTO ADDRESSES (LASTNAME, FIRSTNAME) VALUES ('Smith', 'John')");
  db.exec("INSERT INTO ADDRESSES (LASTNAME, FIRSTNAME) VALUES ('Miller', 'Bob')");
  db.exec("INSERT INTO ADDRESSES (LASTNAME, FIRSTNAME) VALUES ('Johnson', 'Eve')");
   db.exec("SELECT * FROM ADDRESSES", 10);

  System.out.println(db.getDataAsTable());
  System.out.println(db.getDataAsJSON());
}
SEQUENCE    LASTNAME             FIRSTNAME            
1           Smith                John                 
2           Miller               Bob                  
3           Johnson              Eve                  
{
  "ADDRESSES": [
    {
      "SEQUENCE": 1,
      "LASTNAME": "Smith",
      "FIRSTNAME": "John"
    },
    {
      "SEQUENCE": 2,
      "LASTNAME": "Miller",
      "FIRSTNAME": "Bob"
    },
    {
      "SEQUENCE": 3,
      "LASTNAME": "Johnson",
      "FIRSTNAME": "Eve"
    }
  ]
}

एसएमटीपी: संदेश बनाएं और भेजें

  • परीक्षण, HTML और फ़ाइल अनुलग्नकों के साथ MIME मल्टीपार्ट संदेश बनाएं।
  • STARTTLS/TLS या गैर-TLS कनेक्शन के लिए समर्थन।
  • OAuth 2.0 और बुनियादी प्रमाणीकरण के लिए समर्थन।
KSMTPMailer mailer = new KSMTPMailer();

mailer.setFrom("[email protected]");
mailer.setTo("[email protected]");
mailer.setSubject("Subject");
mailer.addHTML("

Your requested files

"); mailer.addText("Body Text"); mailer.addFile("test1.txt"); mailer.addFile("test2.txt"); mailer.addText("Regards, John"); mailer.send();

HTTP क्लाइंट: सरल मानक या REST कॉल

  • HTTP और HTTPS का समर्थन करता है।
  • सभी मानक HTTP विधियों (GET, POST, PUT, POST, आदि) के लिए समर्थन।
  • अनुरोध हेडर दिनांक, उपयोगकर्ता-एजेंट, होस्ट और सामग्री-लंबाई स्वचालित रूप से जोड़ दी जाती है।
Properties props = new Properties();
props.put("Authorization", "Basic "   K.encodeBase64(userName   ':'   password);

KHTTPClient http = new KHTTPClient();

if (!http.post("https://example.com:4443", props, "HTTP body data")) {
   KLog.abort("HTTP POST failed - "   http.getLastError());
}

के: उपयोगिता वर्ग

  • यूआरएल, बेस64, सीएसवी, जेएसओएन, एक्सएमएल और वाईएएमएल के लिए एनकोड/डीकोड।
  • एईएस256 एन्क्रिप्ट/डिक्रिप्ट (एईएस/सीबीसी/पीकेसीएस5पैडिंग)।
  • ZLIB कंप्रेस/डीकंप्रेस।
  • हैश जनरेट करें (MD5, SHA-2 या SHA-3).
  • किसी भी DNS रिकॉर्ड (एमएक्स, ए, आदि) को क्वेरी करें।
// Wait 1/4 second
K.waitMilliseconds(250);

// Get DNS MX record(s)
String[] mxRRs = K.queryDNS("MX", "yahoo.com");

//
// AES-256 Encryption/Decryption
//
String secretKey = "This is the secret key";

// Create a simple text file
KFile.writeFile("This is a simple text file", "AES-Text.txt");

// Generate and save random AES-256 initialization vector
KFile.writeFile(K.getRandomBytes(16), "AES.iv");

// Encrypt
byte[] clearText    = KFile.readByteFile("AES-Text.txt");
byte[] initVector   = KFile.readByteFile("AES.iv");
byte[] cipherText   = K.encryptAES256(clearText, secretKey.getBytes(), initVector);
KFile.writeFile(cipherText, "AES-Text.encrypted");

// Decrypt
cipherText  = KFile.readByteFile("AES-Text.encrypted");
initVector  = KFile.readByteFile("AES.iv");
clearText   = K.decryptAES256(cipherText, secretKey.getBytes(), initVector);

मज़े करें और मुझे बताएं कि आपको क्या पसंद है और क्या सुधार की आवश्यकता है। आप मुझ तक ईमेल [[email protected]] या मास्टोडन पर पहुंच सकते हैं।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/andybrunner/introusing-free-java-utility-package-1fph?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3