Although in the past some differences existed between embedded Java and traditional PC based Java solutions, the only difference now is that embedded Java code in these embedded systems is mainly contained in constrained memory, such as flash memory. A complete convergence has taken place since 2010, and now Java software components running on large systems can run directly with no recompilation at all on design-to-cost mass-production devices (consumers, industrial, white goods, healthcare, metering, smart markets in general,...)
Recent developments in the field are
- In 2014, EBV annonced JAKARTA : a hardware & software application Java platform ready for new areas of low cost Human Machine Interfaces based on FREESCALE KINETIS-L .
- In October 2013, Renesas Electronics annonced providing Embedded Java for RX Microcontrollers .
- In January 2013, STMicroelectronics announced full Java support for STM32 F3/F4-series microcontrollers STM32 and stm32java.
- In March 2013, MicroEJ product line from IS2T for ARM Cortex-M (all RTOS), ARM Cortex-A (Linux, Integrity, VxWorks), ARM7-TDMI (all RTOS), ARM9 (Linux, Integrity), AVR32 UC3 (all RTOS), V850 (all RTOS).
- Before 2012, the Squawk Virtual Machine, a JVM developed by Sun Microsystems and deployed as part of Project Sun SPOT.
Topology of the Core Java API
In order for a software component to run on any Java system, it must target the core minimal API provided by the different API.
Java SE embedded
Java SE embedded is based on desktop Java Platform, Standard Edition. It is designed to be used on systems with at least 32 MB of RAM, and can work on Linux ARM, x86, or Power Architecture, and Windows XP and Windows XP Embedded architectures.
Java ME embedded
Java ME embedded is based on the Connected Device Configuration subset of Java Platform, Micro Edition. It is designed to be used on systems with at least 8 MB of RAM, and can work on Linux ARM, PowerPC, or MIPS architecture.
The offering of Java for embedded devices is growing fast with companies that provide Embedded Java virtual machines for ARM Cortex-M serie. Only 50KB of flash is needed and a few KB of RAM.
- GNU Compiler for Java
- Excelsior JET, Embedded Edition
- Sun SPOT Sun SPOT Project
- MicroEJ from IS2T
- Real-Time Specification for Java
- ESR consortium
- STM32 STM32J part numbers. MCU that embeds an embedded Java engine
|Wikimedia Commons has media related to Java Embedded.|
- STM32-JAVA : Full product line for Java on Cortex-M3/4 from STMicroelectronics : Eclipse based IDE + dedicated part numbers STM32J (free samples also available for prototyping)
- STM3220G-JAVA : STM32 F2 series Java evaluation kit.
- Java SE for Embedded : Java SE for Embedded technology from Oracle Corporation
- 28 Kbyte Java Virtual Machine Supports 32-bit MCUs : Embedded Java for Cortex-M3/4 MCU from IS2T Corporation
- Java SE for Embedded Development Made Easy : Webcast covering development, troubleshooting, deployment
- http://www.systronix.com/ - Systronix TStik, JStamp, JStik : Small embedded Java systems, some with deterministic/realtime capabilities
- Google Android project : Open source project to create software for mobile devices such as the T-Mobile G1 phone
- JControl : Very compact Java Virtual Machine for Embedded Systems
- Mysaifu Java2 Virtual Machine
- MicroJvm : Java virtual machines for embedded systems
- Excelsior JET Embedded : Java SE 6 for embedded Linux and Windows, with AOT compiler
- http://www.parallax.com/ - Parallax's Javelin STAMP, similar to the Basic Stamp but utilizing object-oriented technology instead of Basic
- JamaicaVM : a cleanroom implementation of a virtual machine and build environment for running realtime and embedded Java programs.
- JwiK BriK™ : Open source Java programmable wireless microcontroller for embedded wireless applications