Calimero serial communication provider [](https://github.com/calimero-project/serial-native/actions/workflows/gradle.yml) [](https://jitpack.io/#calimero-project/serial-native) [](https://jitpack.io/#calimero-project/serial-native/master)

July 19, 2025 ยท View on GitHub

Provider for serial access to KNX networks using JNI. It contains Linux, macOS, and Windows libraries written in C.

Compile the C sources for your target platform, or use one of the precompiled libraries in the jar archive available for Windows, Linux, and macOS. Compiling the C sources requires an installed C/C++ toolchain.

This provider uses System.Logger for logging.

Setup

  • Put the .jar file on the module or class path used by Calimero.

  • Copy the (pre-)compiled C library to a folder of the Java library path, to be found by the JRE. In Java, this prints the Java library path:

      System.out.println("Java library path = " + System.getProperty("java.library.path"));
    

Building from source

git clone https://github.com/calimero-project/serial-native.git

With Gradle

For Linux, macOS, Windows. The compiled library can be found in the build/lib directory.

./gradlew build

With Maven

The Java library is compiled via

mvn clean compile

The native library is compiled using the NAR maven plugin (the plugin configuration assumes that the JAVA_HOME environment variable is set). The POM contains settings for Linux and macOS:

mvn nar:nar-compile

The compiled library can be found in the target/nar directory. The NAR maven plugin supports compiling native code on a number of different architectures.