🔨
Java Utility Package
🔨
Java Utility Package
  • Java Utility Package (Open Source)
  • Examples
    • 📖Logging
    • 🔧Utility Class
    • 🔑Password Vault
    • 🖥️HTTP / Socket Server
    • ⚒️HTTP Client
    • 🖥️Socket Client
    • 🗃️JDBC Database
    • ✉️SMTP Mailer
    • ⚔️Java Thread
    • 🗄️File Tools
    • ⌚Timer
    • 💡Tips / FAQ
  • Downloads
    • ⬇️Package ch.k43.util
    • ⬇️Sample Code
    • 📖JavaDoc API
    • 👨‍💻GitHub
Powered by GitBook
  1. Downloads

Package ch.k43.util

Last updated 1 day ago

Planned for next version
  • K: Added concat(), clear()

  • KTimer: Added getNanoseconds()

  • Some minor code and documentation changes

Current Version 2025.05.17

  • KPasswordVault: New class to securely hash, store and verify passwords

  • KSMTPMailer: Added setLocalFQDNHostName()

  • Updated Sample Code

  • Some minor code and documentation changes

Version 2025.04.26

  • K: Added repeat(), truncateMiddle(), compressGZIP(), decompressGZIP()

  • Some minor code and documentation changes

Version 2025.04.13

  • KHTTPServerThread: new Class to support HTTP server applications (for web or REST services)

  • K: Added getHTTPStatusText() to return text for a given HTTP status code

  • Updated Sample Code

  • Some minor code and documentation changes


Version 2025.03.30

  • K: Enhance toPEM() to format certificate chain of public keys and add option to describe objects in comments

  • Some minor code and documentation changes


Version 2025.03.20

  • K: Added loadKeyStore(), toPEM(), generateRSAKeyPair(), encodeHTML() and decodeHTML()

  • Updated sample code

  • Some minor code and documentation changes

Version 2025.03.02

  • K: Added INSTANCE_UUID to identify running application instance

  • KLog: Added options in KLog.properties and application startup parameters (KLogInclude and KLogExclude) to include or exclude data from logging

  • Some minor code and documentation changes

Version 2025.02.26

  • Publish Java code on GitHub as open source

  • K: Added getCurrentVersionNumber()

  • Some minor code and documentation changes

Version 2025.02.19

  • K: Added getPasswordHash()

  • Added HelloWorld example to test installation with java -jar ch.k43.util.jar

  • Some minor code and documentation changes

Version 2025.02.13

  • KTimer: Added reset()

  • K: Added saveError()

  • K: Added multiple static fields that describe the environment

  • Some minor code and documentation changes

Version 2025.01.27

  • KHTTPClient: Added setTimeOutSec()

  • KLog: Added command line parameter KLogPropertyFile to override name and location of KLog.properties file

  • KLog: Added command line parameter KLogLevel to override logging level (INFO, ERROR, DEBUG or OFF)

  • Changed locale of generated JavaDoc output to en_US

  • Some minor code and documentation changes

Version 2025.01.22

  • K: Added replaceParams()

  • KHTTPClient: Treat HTTP return code 200-299 as successful

  • KLog: Added parameterized logging to all methods, e.g. KLog.error("API call failed - Return code {}", returnCode)

  • Internal code optimization and documentation changes

Version 2025.01.19

  • Support for GraalVM native-image compilation (see Tips / FAQ)

  • Check if JVM is Java 8 (version 1.8) or higher

  • K: Added isNewVersionAvailable()

  • Some minor code changes

  • Major rewrite of the website content

Version 2024.12.08

  • KLog: Save the last 10 errors even if logging is not active (retrievable with K.getLastError() and K.getLastErrors()

  • K: Changed formatBytes() to show e.g. MiB instead of MB (IEC standard)

  • K: Added getPrivateKey(), getPublicKey() and getCertificate()

  • Sample code updated

  • Some minor code and documentation changes

Version 2024.10.26

  • KDB: Added option argTimeOutSec to exec()

  • KDB: Added prepare() and execPrepare() to support SQL precompilation and prevent SQL injection attacks

  • Some minor code and documentation changes

Version 2024.09.15

  • KLog: Fix small bug when debug log is active in YAML code

Version 2024.09.14

  • KLog: Added formatter class to write logging as YAML output

  • KDB: Added getDataAsYAML() to output result set as YAML string

  • K: Added encodeYAML() and decodeYAML()

  • Some minor code and documentation changes

Version 2024.09.12

  • K: Added option to isNumber() to check for allowed numeric range

  • KLog: Show CPU count and OS disk size in debug log

  • Some minor code and documentation changes

Version 2024.09.06

  • KThread: New class for easy Java thread creation and termination

  • K: Removed argForce argument from stopThread() as newer Java versions removed the depreciated Thread.stop() method

Version 2024.09.02

Upgrade Notice: Make sure you are using the new Jakarta/Angus mail jar files for the KSMTPMailer and KLogSMTPHandler classes

  • KSMTPMailer: Migrated from JavaMail (javax.mail) to Eclipse Jakarta/Angus mail.

  • KDB: Added option in getDataAsTable() to optionally print column headers

  • Some minor code and documentation changes

Version 2024.08.29

  • K: Added isInteger() and stopThread()

  • KLogSMTPHandler: Added logging handler to send error log entries (FATAL log level) to any SMTP server

  • Some minor code and documentation changes

Version 2024.08.24

  • K: Remove SHA-1 algorithm from generateHash()

  • K: Added serialize() and deserialize()

  • KDB: Added maxRows argument to exec() call

  • Added toString() to all classes to write out object data

  • Some minor code and documentation changes

Version 2024.08.12

  • K: added round(), compressZLIB() and decompressZLIB()

  • Some minor code and documentation changes

Version 2024.07.07

  • Implemented Java AutoCloseable in KDB, KSocketClient, KSocketServer, KSocketServerListener and KSocketServerThread

  • K: Added isNumber()

  • K: Added option to encodeJSON() to return null, boolean and number values without quotes

  • Some minor code and documentation changes

Version 2024.06.27

Upgrade Notice: The K.getJVMMemStats() now returns number of bytes (not KB).

  • K: Added formatBytes(), updated getJVMMemStats() to return number of bytes

  • KDB: Added setAutoCommit() and getElapsedTime()

  • Some minor code and documentation changes

Version 2024.06.22

  • KLog: New formatter classes to write logging as CSV or XML output

  • KLog: Adds UUID field to JSON, CSV, XML and JDBC output

  • New KLog.properties sample file uploaded

  • Some minor code and documentation changes

Version 2024.06.20

  • K: Added encode and decode methods for XML

  • KLogJDBCHandler: Added logging handler to output data to any JDBC compliant database

  • KLog: Added getLevel() and setLevel()

  • KDB: Added getDataAsXML(), commit() and rollback()

  • KSMTPMailer: Added setUnsubscribe()

  • New KLog.properties sample file uploaded

  • Some minor code and documentation changes

Version 2024.06.15

  • KDB: New class to support JDBC compliant databases with various output formats (JSON, CSV, table or Java objects)

  • KSMTPMailer: Added setSubject(string, charset) for non-UTF-8 subjects

  • KSMTPMailer: Added setOAuth2Authentication() to support OAuth 2.0 authentication

  • K: Added encode and decode methods for JSON and CSV

  • Some minor code and documentation changes

Version 2024.06.10

Upgrade Notice: Don't forget to rename Log.properties to KLog.properties if you are using the KLog framework.

  • KLog: Log.properties file renamed to KLog.properties for consistency with the KLog class

  • K: Added runGC() and getJVMMemStats()

  • KSMTPMailer: Added addText(string, charset) for non-UTF-8 text parts

  • Include downloads of Jakarta Mail and Jakarta Activation on this website

  • Some minor code and document changes

Version 2024.06.06

  • KLog: Added setLevelXxx(), isLevelXxx() and resetLevel() to set or query the configured logging level during runtime

  • KSMTPMailer: Added getMessageSize() to get size of MIME message after delivery

  • KSMTPMailer: Include Jakarta Mail debug log in KLog logging output

  • KSMTPMailer: Removed X-TLS-Connection header as there is no guarantee that it is enforced by the SMTP server

  • KTimer: Added getStartTime() and toString() to return start time as Calendar object or in ISO-8601 format

  • KSocketServerThread: Added writeLine()

  • K: Added getRandomInt(), getUTCOffsetMin() and getUTCOffsetAsString()

Version 2024.05.24

  • K: Added toHex() to format byte array or string to a hexadecimal string

  • K: Added getUniqueID() to return unique id (UUID)

  • K: Added getCurrentDir() to return current directory

  • K: Changed generateHash() to support SHA3-256, SHA3-384 ad SHA3-512

  • K: Added getStartTime() to return date and time of application startup

  • KHTTPClient: Added put(), patch(), options() and delete() methods

  • KSMTPMailer: Added check for hostname (TLS only)

  • Some minor code and document changes

Version 2024.05.20

  • K: Added isEmpty() to test string or array for emptiness

  • KSMTPMailer: Include platform in X-Mailer header

  • KSMTPMailer: Added header X-TLS-Connnection: true/false

  • Some code cleanup and documentation changes

Version 2024.05.17

  • KSMTPMailer: New class to compose and send multipart SMTP email with text, HTML and file attachments

  • KSocketServerThread: Added getAuthenthicatedClientCN() to return common name of the full distinguished name

  • KSocketClient: Added getAuthenticatedClient() and getAuthenticatedClientCN()

  • KFile: Added readPropertiesFile() and writePropertiesFile()

  • KLog: Added argException() to throw IllegalArgumentException if expression evaluates true

  • K: Added dnsQuery() to return records for all query types (MX, A, etc)

  • Some minor code and documentation changes

Version 2024.05.06

  • First public version

Added sample GraalVM macOS native image executable "GetCurrentVersion" in

Updated

Updated

Added for KSocketServer

Added some to this website

Tips / FAQ
sample code
sample code
architecture overview diagramm
sample code
⬇️
97KB
ch.k43.util.2025.05.17.zip
archive
93KB
ch.k43.util.2025.04.26.zip
archive
92KB
ch.k43.util.2025.04.13.zip
archive
84KB
ch.k43.util.2025.03.30.zip
archive
83KB
ch.k43.util.2025.03.20.zip
archive
81KB
ch.k43.util.2025.03.02.zip
archive
81KB
ch.k43.util.2025.02.26.zip
archive
81KB
ch.k43.util.2025.02.19.zip
archive
78KB
ch.k43.util.2025.02.13.zip
archive
77KB
ch.k43.util.2025.01.27.zip
archive
76KB
ch.k43.util.2025.01.22.zip
archive
75KB
ch.k43.util.2025.01.19.zip
archive
75KB
ch.k43.util.2024.12.08.zip
archive
73KB
ch.k43.util.2024.10.26.zip
archive
71KB
ch.k43.util.2024.09.15.zip
archive
71KB
ch.k43.util.2024.09.14.zip
archive
69KB
ch.k43.util.2024.09.12.zip
archive
68KB
ch.k43.util.2024.09.06.zip
archive
68KB
ch.k43.util.2024.09.02.zip
archive
68KB
ch.k43.util.2024.08.29.zip
archive
63KB
ch.k43.util.2024.08.23.zip
archive
58KB
ch.k43.util.2024.08.12.zip
archive
58KB
ch.k43.util.2024.07.07.zip
archive
57KB
ch.k43.util.2024.06.27.zip
archive
53KB
ch.k43.util.2024.06.22.zip
archive
53KB
ch.k43.util.2024.06.20.zip
archive
48KB
ch.k43.util.2024.06.15.zip
archive
42KB
ch.k43.util.2024.06.10.zip
archive
42KB
ch.k43.util.2024.06.06.zip
archive
40KB
ch.k43.util.2024.05.24.zip
archive
40KB
ch.k43.util.2024.05.20.zip
archive
39KB
ch.k43.util.2024.05.17.zip
archive
33KB
ch.k43.util.2024.05.06.zip
archive
Page cover image