JavaPOS
JavaPOS or Java for Point of Sale, is an application interface written in Java that provides common access to POS peripheral devices. The advantages are reduced POS Terminal costs, platform independence, and reduced administrative costs.
Historical Background
JavaPOS was initiated by SUN Microsystems, IBM, and NCR to help integrate POS hardware into applications for any operating system that supports Java.
The first JavaPOS meeting was convened in April, 1997. The first production release, 1.2, was made in March, 1998. Its final release, 1.6, was in July 2001. Beginning with release 1.7, the JavaPOS committee no longer releases an implementation-specific document. The UnifiedPOS document has added implementation information into an appendix.
In order to encourage adoption of the standard, the interface was based on the already existing OPOS standard.
Lack Of Progress In Implementation
Although JavaPOS was initiated 10 years ago, the implementation is far from finished.
For RS-232 serial communications, JavaPOS relies on the javax.comm package which was not finished by Sun. Luckily, there is a third-party solution for serial communication, using Java. See: Java Serial Communication
Also, JavaPOS relies on a USB package called: javax.usb which has only been implemented for Linux. The javax.usb package was designed using the Java Community Process (JCP) see JSR-80 at: JSR-80
When you are developing application software using Java, you can't just use Java-based drivers. since the underlying implementation for serial and USB are missing.
Despite how promising "JavaPOS" may sound, when developing application software using Java, usually, you still have to rely on a driver provided by the manufacturer for a particular platform that you are developing on and can't rely on just writing cross-platform code in Java.