Runtime for Java Applications on Embedded Systems

JamaicaVM

aicas’ runtime and development environment for building and running memory-safe, realtime applications across embedded and mission-critical systems.


The Challenge

Bring Modern Software Development to Constrained, Time-critical Edge Systems

Embedded systems often combine strict timing requirements, limited resources, long product lifecycles, and heterogeneous hardware and operating systems.

Teams need a software environment that supports reliable execution without giving up portability or access to established development ecosystems.

1

Standard Java runtimes do not cover every embedded target

Embedded products may run on Linux, QNX, VxWorks, or custom operating systems and on different processor architectures. Standard runtime availability can become a constraint when software must move across these environments.

2

Resource constraints make runtime efficiency and deployment flexibility critical

Embedded applications must fit within device-specific memory and processing limits while remaining maintainable over long lifecycles. Teams need ways to tune performance and footprint without locking the application into a single target platform.

3

Memory safety and realtime requirements must coexist

Manual memory management can introduce failure and security risks, while conventional managed runtimes may introduce unpredictable pauses. Time-critical systems need managed memory without sacrificing deterministic behavior.


The Solution

Run Java Applications Reliably in Embedded and Realtime Environments

JamaicaVM extends the Java ecosystem to embedded systems with a runtime designed for memory-safe, realtime execution across a broad range of operating systems and processor architectures.

Memory-safe Execution

JamaicaVM implements the APIs of the Java programming and bytecode language, enabling Java applications and libraries to run on embedded targets. This applies to bytecode-compatible languages such as Kotlin, Clojure, and Scala, as well.

Realtime Java with Deterministic Memory Management

JamaicaVM provides the reference implementation of the Realtime Specification for Java (RTSJ), allowing developers to build time-critical Java applications in a virtualized, memory-managed environment.

Embedded Portability with Runtime Tuning

JamaicaVM supports standard and realtime operating systems, including Linux, QNX, and VxWorks, as well as custom-built environments. Ahead-of-Time compilation can be used to tune application speed and footprint. JamaicaVM allows for dynamic loading even after compilation to preserve the flexibility of using libraries and other modules.


Business Outcome

Reduce Embedded Software Constraints. Save engineering time and costs.

Cut Embedded Development Time

Reuse Java skills, applications, libraries, and standardized APIs instead of building and maintaining separate software stacks. Reduce development effort, shorten time-to-market, and make existing engineering expertise immediately productive on embedded targets.

Reduce Software Defects and Engineering Effort

Use a managed, memory-safe runtime to eliminate large classes of manual memory-management errors. Spend less engineering time on allocation, deallocation, corruption, and related debugging—and reduce the cost and risk of software defects.

Make Time-critical Software more Predictable

Use RTSJ capabilities and deterministic memory management to control execution behavior where timing matters. Reduce the engineering effort required to achieve predictable realtime behavior and avoid costly workarounds in application code.

Port once—Reuse across Targets

Keep Java as the common application environment across operating systems and processor architectures. Reduce platform-specific development and maintenance, accelerate product variants, and reuse application software instead of repeatedly adapting it to different targets.

Reduce Hardware and Resource Requirements

Use Ahead-of-Time compilation and target-specific configurations to optimize performance and memory footprint for each device. Fit applications to constrained hardware, potentially reduce required RAM and compute resources, and lower device BOM cost without sacrificing application functionality.

Turn Existing Java Expertise into Embedded Productivity

Build on an established ecosystem of developers, libraries, tools, and APIs instead of creating a separate embedded software organization. Reduce training and hiring effort while increasing the value of existing software assets across the product lifecycle.


How it Works

From Connected Devices to Usable Edge Data

Turn distributed edge signals into usable data through a structured workflow, from device connection to visualization and downstream use.

🡢

Add and Connect Devices

🡢

Validate Available Data

🡢

Select the Data you Need

🡢

Configure and Activate Campaigns

🡢

Collect the Data

🡢

Visualize or Integrate the Results

Add new devices to EDG through Automatic Agent Provisioning, providing preconfigured software agents that auto-connect devices to EDG.


Capabilities

Java Capabilities for Embedded and Realtime Systems

JamaicaVM combines standardized API support of Java with runtime and build capabilities for embedded, resource-constrained, and time-critical target environments.

Supports Java Language and Bytecode API

JamaicaVM allows Java applications and libraries to run on supported embedded targets. This applies to bytecode-compatible languages such as Kotlin, Clojure, and Scala, as well.

Deterministic Memory Management

JamaicaVM combines managed memory with realtime capabilities so applications can avoid the issues and security risks that come with manual memory allocation and deallocation while supporting controlled timing behavior.

Realtime Java with RTSJ

In addition to standard Java, JamaicaVM provides the reference implementation of the Realtime Specification for Java (RTSJ). This enables developers to build time-critical applications in Java while using a virtualized, memory-managed environment.

Ahead-of-Time Compilation

Ahead-of-Time compilation can be used to fine-tune application execution speed and memory footprint for the requirements of embedded targets.


Why JamaicaVM

Why JamaicaVM for Embedded and Realtime Java?

JamaicaVM combines support for standardized Java APIs with capabilities designed for embedded and realtime environments.
Built on OpenJDK, it extends the Java ecosystem to operating systems, processor architectures, and resource-limited environments where standard Java implementations may not meet deployment requirements.

Common Java

e.g. OpenJDK

AOT-compiled Java

e.g. GraalVM

JamaicaVM

Plattform Support

QNX, VxWorks

Deterministic Realtime Applications & API

AOT Compilation

Dynamic Component Loading *

* after Compilation and Component-wise compilation

Java Beyond Common OpenJDK Environments

Run Java applications on embedded operating systems and architectures including QNX and VxWorks, with custom builds available for additional target environments.

AOT Compilation for Embedded Targets

Ahead-of-Time compilation enables developers to tune application execution speed and memory footprint for the requirements of embedded systems.

Realtime Java Execution

JamaicaVM provides the reference implementation of the Realtime Specification for Java (RTSJ), enabling time-critical Java applications while retaining the memory safety of a managed runtime environment.

AOT with Dynamic Loading

JamaicaVM can dynamically load code after compilation. Compiled JAR files can remain available as libraries, components, and modules, providing flexibility for application development and tuning alongside AOT compilation.

Configuration for Resource-Limited Devices

JamaicaVM provides configurations adapted to resource-limited embedded devices, extending Java application deployment to environments with tighter system constraints.

Maintained and Supported by aicas

JamaicaVM is maintained by aicas and provided with additional services for embedded and realtime deployment requirements.


Use Case Examples

Where JamaicaVM supports embedded software operations

Logic Management

WHAT: Siemens high-end motion control system “Simotion”: provide customers with robust means to program devices, while maintaining a clock cycle below 125µs.

HOW: aicas’ embedded JamaicaVM runs Java code with standards based hard realtime capabilities. This is based on aicas’ deterministic garbage collector.

VALUE: JamaicaVM enables robust device programming, thus reducing the cost of customization for both Siemens and its customers. JamaicaVM has been in operation on Siemens Simatic for over 10 years.​

Realtime Operation

WHAT: The production processes require a reaction time of less than 1ms. The software developers needed a safe and simple programming interface for the tools they are developing.

HOW: By using aicas’ JamaicaVM, a deterministic and realtime embedded virtual machine, Java programming is simplified. At the same time, it ensures very short execution times, such as the 1 ms required by the company’s production equipment.

VALUE: These machines are renowned for their robustness and unparalleled quality. JamaicaVM extends these quality capabilities while bringing simplicity of use on top of companies’ quality standards.

Embedded Sandboxing

WHAT: Use artificial intelligence to monitor the functions of the machines.

HOW: Patients’ lives depend on ventilators. Therefore, the software running the basic operations of the system needs to be shielded from the artificial intelligence used to monitor the ventilator’s functions. The customer, a large German manufacturer of medical technology, uses the virtualization capabilities of aicas’ Jamaica VM to seperate core functionalities from the AI.

VALUE: It ensures the ventilator’s basic software remains operable, even if the AI wants to use more system resources than it should. The Jamaica product family prevents memory or CPU usage beyond defined limits, thus protecting key application functions.


Platform Support

Run Java across Heterogeneous Embedded Environments 

JamaicaVM supports a broad range of operating systems and processor architectures, including environments where standard Java runtime implementations are not available.

Host systems: Linux · Windows · MacOS

*

Debian/Ubuntu-based, RPM/RHEL-based, Android-based, Yocto-built

**

For Windows and macOS, aicas provides a serviced build of OpenJDK without realtime functionality.

Target OS

x64

AArch64

RISC-V

Other

Linux *

Yes

Yes

Yes

On Request

QNX

Yes

Yes

On Request

On Request

VxWorks

Yes

Yes

On Request

On Request

Other OS

On Request

On Request

On Request

On Request

Windows

Yes

**

 Yes

**

On Request

On Request

macOS

Yes

**

 Yes

**

On Request

On Request


aicas EdgeSuite

JamaicaVM within aicas EdgeSuite

JamaicaVM is the runtime and development environment within aicas EdgeSuite, complementing the platform’s capabilities for software, data and AI operations across distributed edge environments.

JamaicaVM is a solid foundation for devices connected to aicas EdgeSuite, providing memory safety and realtime capabilities with features designed specifically for embedded systems. Combined with JamaicaAMS, aicas’ dynamic application management system, it creates an environment for controlled execution and management of modular software on connected edge devices.

Explore aicas EdgeSuite

Resources

Technical Information for Evaluating JamaicaVM

Downloads

JamaicaVM Manuals

JamaicaVM Eclipse Plugin

OpenJDK Licensing Information

Documentation

JamaicaVM Release Notes

JamaicaVM API Reference

RTSJ API Reference


Next Step

Evaluate JamaicaVM for your Embedded Target

Discuss your operating system, processor architecture, realtime requirements, and Java applications with aicas to determine the right JamaicaVM configuration for your environment.


FAQ

Common questions about JamaicaVM

JamaicaVM is a Java runtime and development environment for embedded systems. It supports Java APIs, Realtime Java through RTSJ, memory-managed execution, and deployment across a range of embedded operating systems and processor architectures.

Realtime Java applies Java to systems with defined timing requirements. JamaicaVM provides the reference implementation of the Realtime Specification for Java (RTSJ), which defines APIs and runtime behavior for time-critical Java applications.

A Java Virtual Machine uses managed memory rather than requiring application developers to allocate and free memory manually. JamaicaVM brings this managed execution model to embedded targets and combines it with realtime capabilities for time-critical applications.

JamaicaVM supports Java language and bytecode APIs. This allows Java applications and libraries to run on supported embedded systems, subject to the application’s dependencies and the capabilities of the target environment.

The current product-management information states that JamaicaVM supports bytecode-compatible JVM languages such as Kotlin, Clojure, and Scala. Compatibility for a specific application should be validated against its libraries, runtime dependencies, and target platform.

Current product-management information lists Linux, QNX, and VxWorks among the supported JamaicaVM targets, with additional or custom operating-system and processor combinations available on request. Development hosts include Linux, Windows, and macOS.

JamaicaVM is built on OpenJDK but adds support for embedded and realtime environments, including target configurations for QNX, VxWorks, and custom systems, Ahead-of-Time compilation, and Realtime Specification for Java capabilities.

Yes. JamaicaVM supports Ahead-of-Time compilation for performance and footprint tuning while retaining the ability to load compiled JAR files, libraries, components, and Java modules dynamically after compilation.

JamaicaVM provides a runtime foundation in the EdgeSuite edge layer for memory-safe, realtime Java applications. It can work alongside JamaicaAMS for application management on edge devices. The exact integration and packaging relationships should be confirmed for the final product page.

Scroll to Top