Java™ is the most successful programming language in the world. It is widely used on servers, in classic desktop applications and in the embedded sector. There is a powerful ecosystem around Java: thousands of programming libraries, support for many platforms and a large number of experienced developers.

The Java Virtual Machine (JVM) is the heart of all Java applications. It provides a protected and managed runtime environment for executing application code. It takes care of automatic memory management and isolates the application code from the operating system and hardware to ensure easy portability.

MicroDoc creates the Java runtime environment that suits you.

Our experience in
quality and quantity

Licenses in the field

MicroDoc Java™ Embedded

MicroDoc Java™ Embedded

Our Java™ licensing model is based on application domains (among other criteria). MicroDoc offers commercial Java licenses for embedded applications only.

Embedded applications are systems where a specific hardware is bundled with specific software to serve a defined purpose, for example: ATMs, automotive infotainment and telematic units, handheld scanners, charging stations, industrial process automation devices etc.

The basic licensing model is one-time royalty per device. Each license for the Java Runtime Environment (JRE) is coupled to a specific device and the license is valid as long as the device exists. If the device is abandoned, the JRE license becomes void. The cost for a license is determined by a metric that is ruled by the processing power of the device (performance-based pricing) – or in specific cases by the application implemented on top of the JRE (application-based pricing). All licenses are granted by a one-to-one “Custom License Agreement (CLA)” between You (as a customer) and MicroDoc (as the supplier).

The embedded space is a complex environment with many different hardware architectures, operating systems and peripherals devices. Java™ is a highly standardized programming language and any product that claims to be compliant with the Java™ specification needs to be certified by passing a Technology Compatibility Kit (TCK/JCK) suite of tests. The process ensures that your application code will run properly on any certified Java™ virtual machine.

If you are looking for a Java Runtime Environment that supports your embedded platform, we can help you.

Custom platforms and platform ports

If your systems are different from standard platforms, we can usually create a custom JRE which is specifically built for your device hardware and software. We create the JVM for you based on the original Oracle code and we use your platform SDK consisting of C/C++ compiler, assembler, debugger etc. to build the Java VM. We make sure that the VM created for you is fully compatible with your platform and we also certify the VM by executing the appropriate TCK/JCK suite of tests to ensure compliance with the Java™ specification.

We will need a hardware sample, either original device, original BSP or sufficiently compatibly development system, together with the toolchain for the platform in our lab to create and certify a custom JRE. Typically, some NRE cost are involved in the creation and certification of a custom JRE.

Licensing is again pretty straightforward: Step one: we agree on the details of your custom platform and the porting/certification cost, Step two: you provide us with a free copy of the device and software tools for the creation of the VM, Step three: we build and certify the JRE, Step 4: we deliver a master copy that allows you to deploy the custom Java runtime with your device or application.

Custom JREs are not necessarily for previously unsupported devices. We may also customize a MicroDoc Standard Reference Platform for application specific requirements. Typical customizations include:

  • Reduced RAM and/or ROM footprint
  • Improved startup time
  • Integration of crypto hardware or native crypto stacks
  • Application specific performance improvements
  • Custom garbage collectors
  • Etc.

Please contact our JVM specialist to discuss your Java needs in detail.

Licensing and Support

MicroDoc Java™ Embedded is a commercial product. The technology is licensed to “device manufacturers” on a “per device” basis. The lifetime of the license is coupled to the lifetime of the individual device. A “device manufacturer” is a company that integrates the GraalVM Embedded product into a solution/product that contains hardware and/or software created or integrated by the company.

Pricing is based on the CPU performance class of your target device and the number of CPU cores on your system.

We offer “version locked licenses”, a model that is perfectly suited to embedded use-cases. The license is granted for the entire individual device lifetime and there are no recurring fees, just a one-time payment per device. Optional support plans for “version locked” licenses can include the delivery of stability or security fixes for the licensed product version and we offer custom SLAs tailored to your needs. Version upgrades to purchased licenses are not included in this model.

We also offer a model called “maintained license” which allows you to upgrade to the latest level of our product at any time, including devices that have already been deployed. “Maintained license” have a mandatory support plan with annual payments for all licensed devices.

Custom platform support plans and support for platform ports may also include NRE cost for new product releases (re-porting fees).

Long term support agreements can be provided for high volume projects or under special conditions.

It is also possible to create “application based” pricing for high volume projects which do not easily fit into the regular pricing schemes. Please contact us for details.


License contracts are freely negotiated between the parties. MicroDoc proposes to define a frame agreement to determine the license grant and the rights and duties of each party. For each platform and product, we propose to amend an attachment which defines the product specifics, prices, and other project specific terms including an optional support plan.


The content of this document is carefully edited and reflects the current terms of the licensing business. Anything in this document is subject to change without notice. Any binding agreement between a customer and MicroDoc requires a mutually signed contract in writing. MicroDoc does not accept any liability for erroneous or incomplete statements.

Java™ and Java related trademarks as well as GraalVM™ are trademarks or registered trademarks of Oracle Corporation and/or its affiliates.