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

How to distribute a Java application as executable (.exe) file

One option for distributing your Java application is to make the JAR file (Java archive). Every Java archive contains a manifest file that describes the rest of the files in the archive. These are typically class files, security information, etc.

Creating of a Java archive is possible in the project tree in NetBeans IDE. Once you have created your project using NetBeans IDE, right-click the project name and select “Clean and Build”. The Java archive file will be created in the “dist” folder in the project directory. The dist folder might also contain a lib folder that you need to include.

Java archives are portable across platforms with the Java Runtime Environment (JRE) installed. JRE includes the language compiler, the library files and the Java Virtual Machine (JVM) that executes the Java application. If you created a GUI application, double-click the file icon to launch the program, and JVM handles the creation of the application’s window in an operating system environment. However, if you have created a console application, it is necessary to open a command line to run a command similar to: java -jar archive.jar.

Continue reading