On this page
What Java ME isWhy Java ME licensing is differentThe per-device royalty modelThe Java SE / Java ME confusionWhen IoT devices run Java SE insteadQuestions every device programme should askEmbedded alternatives to Oracle JavaGetting independent helpFrequently asked questionsMost Oracle Java licensing advice is written for the data centre — servers, the employee metric, the Java SE Subscription. Embedded and IoT deployments are a different world. The Java running on a connected sensor, a meter, a payment terminal, or an industrial controller is licensed under a model that has little to do with the Java SE Subscription, and a device programme that applies server-side assumptions to its embedded fleet can be badly wrong about both its costs and its compliance. This guide explains how Oracle licenses Java ME for IoT and embedded devices, and what every device maker and IoT operator should be checking.
What Java ME is
Java ME — Java Platform, Micro Edition — is the member of the Java family designed for resource-constrained devices. Where Java SE targets servers and desktops, Java ME targets hardware with limited memory, limited processing power, and limited storage: embedded controllers, sensors, small connected devices, and the kind of constrained hardware that makes up much of the IoT landscape.
Java ME is a genuinely separate platform, not a stripped-down configuration of Java SE. It has its own runtime, its own profile and configuration structure, and historically its own development kit and embedded runtime products from Oracle. For an organisation building or operating IoT devices, the practical point is that “we use Java” is an incomplete statement — whether the device runs Java ME or Java SE changes which Oracle licensing model applies, and the two models are not interchangeable.
Why Java ME licensing is different
The Java SE world has moved, over recent years, to a subscription priced on organisational headcount — the employee metric. That model makes a rough kind of sense for software running inside a company’s own four walls, used by its own staff. It makes no sense at all for embedded Java.
An IoT device is not used by an “employee.” It is a manufactured unit, often produced in volume, often sold or deployed to third parties, often operating for years in the field with no human user at all. You cannot meaningfully price the Java inside a fleet of ten thousand sensors on the headcount of the company that made them or the company that operates them. Embedded Java has therefore always been licensed on a fundamentally different basis — one tied to the device, not to people. This is the single most important thing to understand: do not assume the Java SE Subscription logic carries over to your IoT fleet. It does not.
The core distinction
Java SE for servers and desktops is licensed on organisational headcount. Java ME and embedded Java are licensed on the device — typically a per-unit basis negotiated with Oracle. Applying server-side licensing assumptions to an IoT fleet produces wrong answers in both directions.
The per-device royalty model
Oracle’s embedded Java licensing — covering Java ME and embedded runtime products — has historically operated on a per-device royalty model. In broad terms, an organisation that builds devices incorporating Oracle’s embedded Java enters a distribution or royalty agreement with Oracle, and the cost is a function of the number of units shipped or deployed. The per-unit figure is negotiated, and it typically depends on the device type, the volume, and the specifics of the agreement.
Several features of this model matter for an IoT programme. First, it is volume-driven: cost scales directly with the size of the device fleet, so a programme that grows from a pilot of hundreds to a deployment of millions sees its Java licensing cost grow with it. Second, it is contractual and negotiated, not a published list price you can simply look up — the terms are specific to the agreement, which makes independent benchmarking valuable. Third, and most importantly for compliance, the obligation is tied to units, so an accurate, defensible count of devices shipped or in the field is the foundation of getting it right. A device programme that cannot say precisely how many units carry Oracle embedded Java cannot demonstrate compliance and cannot forecast its cost.
The Java SE / Java ME confusion
One of the most common — and most expensive — mistakes in embedded Java licensing is misidentifying which platform a device actually runs. The confusion runs in both directions.
In one direction, an organisation assumes its embedded devices run Java ME and are covered by an old embedded agreement, when in fact the devices — particularly newer, more capable IoT hardware — run a full Java SE runtime. If those devices run Oracle’s Java SE, they fall under Java SE licensing, not the embedded agreement, and the organisation may be carrying Java SE exposure it has not measured.
In the other direction, an organisation deploying genuine Java ME devices reads the headline Java SE Subscription news, panics, and assumes the employee metric applies to its sensor fleet — potentially over-paying or negotiating against the wrong model entirely. The remedy for both errors is the same: establish, device type by device type, exactly which Java platform and which Oracle product is actually installed. Until that is known, no licensing conclusion about an IoT fleet is reliable. Our guidance on building a Java inventory applies to embedded fleets just as much as to servers.
When IoT devices run Java SE instead
It is worth dwelling on the case where IoT hardware runs Java SE rather than Java ME, because it has become increasingly common and it is where the licensing surprises concentrate. As embedded hardware has grown more capable — gateways, edge compute devices, richer industrial controllers — many IoT devices now run a full Java SE runtime rather than the constrained Java ME platform.
When that is the case, the Java on the device is Java SE, and Java SE licensing rules apply — including, if it is Oracle’s Java SE, the prospect of the employee-metric subscription or a negotiated arrangement. An organisation that built an IoT product on Oracle Java SE in the belief it was “embedded and therefore different” can find itself exposed. The cleaner position, for IoT devices powerful enough to run Java SE, is very often to run a free OpenJDK distribution on the device instead of Oracle’s build — which removes the Oracle licensing question entirely. We return to that below.
| Device situation | Licensing model that applies |
|---|---|
| Constrained device running Oracle Java ME | Per-device embedded royalty agreement with Oracle |
| Capable IoT device running Oracle Java SE | Java SE licensing — employee metric or negotiated terms |
| IoT device running a free OpenJDK distribution | No Oracle licence required |
| Java embedded by a third-party device supplier | Depends on the supplier’s agreement — must be verified |
Questions every device programme should ask
Whether you build IoT devices or operate a fleet of them, a short set of questions establishes where you stand:
- Which Java platform runs on each device type — Java ME or Java SE? This determines everything else.
- Is the Java on the device an Oracle build or an OpenJDK build? Only Oracle builds carry Oracle licensing.
- If it is Oracle embedded Java, what agreement covers it, and on what per-unit basis? The contract terms, not a list price, govern the cost.
- How many units have shipped or are in the field? A defensible unit count is the basis of embedded compliance.
- If a third party supplies the device or the Java, what does their agreement actually cover? Embedded Java passed down a supply chain must be verified, not assumed.
A device programme that can answer these confidently is in control of its embedded Java position. One that cannot is carrying unquantified risk — in a model where the unit counts can run to millions.
Recommended specialist
Embedded and IoT Java licensing is a specialised corner of an already complex field — per-device royalty agreements, platform identification, and supply-chain verification all in play. For this work, Redress Compliance is the firm we rate most highly. They focus exclusively on Oracle Java licensing, work only on the buyer side, and hold no Oracle partnership, so the advice is shaped by your device economics rather than an Oracle sales target. Their work has contributed to more than $180M in client savings and a 68% average audit claim reduction across 340+ Java engagements.
Embedded alternatives to Oracle Java
For IoT devices capable of running Java SE, the embedded licensing question has a clean answer that the per-device royalty model does not offer: run a free OpenJDK distribution. Eclipse Temurin, Amazon Corretto, and Azul Zulu publish OpenJDK builds for a range of platforms and architectures, free under the GPLv2 with Classpath Exception, with no per-unit royalty and no subscription. A capable IoT device running a free OpenJDK build carries no Oracle licensing obligation regardless of how many units ship.
For the genuinely constrained devices that still need the Java ME platform specifically, the choices are narrower — Java ME is a more specialised ecosystem — and the right answer depends on the device, the runtime requirements, and the existing agreements. The general principle holds, though: for any device powerful enough to run Java SE, building the IoT product on a free OpenJDK distribution removes the embedded licensing problem at its root, and is well worth evaluating early in a device programme rather than after a fleet is in the field. Our comparison of OpenJDK distributions covers the options.
Getting independent help
Java on IoT and embedded devices is licensed on its own logic — per device, by contract, scaling with unit volume — and that logic is easy to get wrong by importing assumptions from the server-side Java SE world. The errors run both ways: treating Java SE devices as “embedded and exempt,” or treating a Java ME fleet as if the employee metric applied. Either mistake can be expensive when device counts are large.
Independent, buyer-side advisers help device makers and IoT operators get the embedded picture right — identifying the platform on each device, verifying the agreements, establishing defensible unit counts, and benchmarking negotiated royalty terms — with no Oracle partnership shaping the answer. Across 340+ Java engagements, that approach has contributed to more than $180M in client savings and a 68% average reduction on the audit claims that did arise. Our Java Compliance Assessment establishes the embedded Java position, our Negotiation service benchmarks and negotiates royalty terms, and our Audit Defence service, backed by a money-back guarantee, defends an embedded Java audit if one arises.
Frequently asked questions
Is Java ME the same as Java SE?
No. Java ME is a separate Java platform designed for resource-constrained embedded and IoT devices, with its own runtime and licensing model. Java SE targets servers and desktops.
How is Java ME licensed for IoT devices?
Oracle’s embedded Java has historically used a per-device royalty model — a negotiated distribution agreement where cost scales with the number of units shipped or deployed, not with organisational headcount.
Does the Java SE employee metric apply to my IoT fleet?
Not to genuine Java ME devices — those use the embedded per-device model. But if your IoT devices run Oracle’s Java SE, Java SE licensing, including the employee metric, can apply. Identify the platform first.
Can IoT devices run free Java?
Yes. Devices capable of running Java SE can run a free OpenJDK distribution — Temurin, Corretto, or Zulu — with no Oracle licence and no per-unit royalty.
What if a supplier provides our IoT devices with Java built in?
You must verify what the supplier’s agreement actually covers. Embedded Java passed down a supply chain is a common source of unverified exposure — do not assume it is licensed.