Serial Port Communication in Java

Sometimes, we need to deal with hardware or external devices from a Java application. One option for communicating with them is to use the COM port (also known as the serial port interface). The serial port does not only allow a direct cable connection via physical ports, but it can also establish a connection via virtual ports for Bluetooth, Wi-Fi devices, etc.

Java applications are executed in Java Virtual Machine (JVM); therefore, they have no direct access to an individual memory address and cannot communicate directly with any hardware devices. In contrast, C/C++ programming languages allow you to directly access memory addresses and thereby access the hardware. What about using the C feature to communicate with hardware and then call created C functions from Java?

Continue reading

How to call a C/C++ function from Java

Java Native Interface (JNI), part of the Java platform, is an interface that enables the communication between Java applications running on a Java Virtual Machine (JVM) and native applications or libraries written in other programming languages (e.g. C, C++).

JNI provides improved performance in some low-level tasks (e.g. Math.sqrt (double a)) and enables communication with hardware devices (Bluetooth, Wi-Fi, etc.). However, there is a disadvantage in losing platform independence because such a program uses the library compiled for specific operating system.

Continue reading