Most developers don’t think much about Embedded Java. But from planes and cars to phones and printers, you might be surprised at the places where it is still used.
The original goal for Java was to provide a development and runtime environment for the Star7, essentially a precursor to the Apple iPad. Java started life targeted as an embedded device.
As we all know, Java’s success has been most noticeable in the enterprise space; big server-side applications run many of the internet’s biggest names.
The Beginnings of Embedded Java
In the early days of Java, a typical PC had only 8MB of RAM (yes, megabytes, not gigabytes) and was most likely running something like a Pentium CPU clocked at 90MHz. Embedded devices at this time would have had a few hundred KB of RAM and not even be using a 32-bit processor. It was still possible to run Java in this kind of environment, but it required some special tricks. This was the motivation for the development of Java ME (Micro Edition), which provided configurations and profiles tailored to different types of devices.
As an aside, I remember having a lot of fun with a version of Java called Lejos that ran on the original LEGO Mindstorms controller (the big yellow RCX brick) and that had only an 8-bit CPU and 32KB of RAM! (Admittedly, it wouldn’t have passed the TCK and didn’t have any garbage collection, but it could do threads.)
Java was embedded in a surprising range of devices in the early days. I still use one of the Amazon Kindle Generation 3s that runs Java. Every Blu-Ray player had Java in it; and before the iPhone and Android, Java was included in almost all mobile phones. It was a shame that Sun Microsystems could never promote this as successfully as Intel did with their “Intel Inside” branding. There was a “Java Powered” logo and brand, but most manufacturers did not want it on their devices.
If we look at embedded systems today, the effect of Moore’s law and economies of scale in production means all but the most basic of devices will have far more computing resources than PCs did at the dawn of Java. This makes life easier for developers as they can run a complete Java environment (especially now we can use jlink to eliminate unused modules). It’s also why Java ME is now just a historical curiosity.
Where Embedded Java is Used Today
I’m sure most developers don’t think of Embedded Java as significant, but you might be surprised at the places where it is still used. For example, all cars produced by one of the biggest German car manufacturers use Java in their infotainment systems. In addition, many printers, VoIP phones, and other electronic devices use Java in their user interface as well as home automation systems like OpenHAB. You’ll even find Java in the cockpit of the largest commercial passenger jet in the world.
Embed Java with Azul
Azul has been providing Java runtimes tailored specifically to embedded applications for nearly a decade. We offer a range of builds covering the most popular embedded processors: ARM 32, ARM 64, PPC32, PPC64 and MIPS32. For those who want to use the familiar x86 and x64 instruction sets, we also have embedded builds for those.
Since the market is not as big as enterprise Java, there are fewer providers in this space. Just recently, one of our competitors increased their prices by anything from 100 percent to over 500 percent.
For our Zulu Embedded builds, we can provide very long-term support, indemnification against JVM open-source license contamination as well as specific optimizations for startup time, performance, and memory footprint. Let’s not forget the great price!
If embedded systems are of interest to you, why not contact us to find out more about the services we offer?