Home

About this guide

How Java hosting is compared: sources, method and update cadence

Every number in the comparisons comes from a provider's own page, read on a stated date. This page explains which fields are recorded and how they are kept current.

Checked November 2026

A vintage beige tower computer from around 2000 under a glass dome

How Java hosting is compared matters as much as the result. A table that says "free" without the sleep rule, or "$5" without the memory limit, sends you to the wrong plan. This page sets out the rules behind every comparison on the site, so you can judge the numbers yourself and see exactly how Java hosting is compared before you trust a ranking.

Sources: the providers' own pages

Every value comes from the provider's own pricing page, documentation or legal page. Render's free tier limits come from Render's docs, Oracle's support dates from Oracle's Java SE roadmap, and so on. Each fact is stored with the URL it came from and the date it was read.

Official pages win over everything else. Review sites, forum posts and reseller pages are not used as a source for a number. When a fact exists only on a third-party page, it is either left out or labeled as third-party data in the table. One example: a Render payment method appears only on a third-party merchant page, so the comparison does not present it as confirmed. The same applies to mirrors. The 99.95 percent uptime figure for paid Azure App Service tiers was read from Microsoft's azure.cn mirror because the global SLA page did not show the App Service text, and the table says so.

What is recorded for each plan

The Java hosting comparison method is built around the questions you actually face when you deploy a JVM app:

Field Why it matters for Java
RAM The JVM heap is a share of instance memory; 256 MB and 512 MB behave very differently
CPU Shared or fractional CPU slows JVM startup and JIT warm-up
Sleep and idle rules A free plan that spins down adds a cold start, often long for a JVM
How Java runs Native buildpack, container image, or a plain VM where you install the JDK
Price Cheapest paid option and the billing model (monthly, per second, per hour)
Payment methods Cards only, PayPal, SEPA direct debit, prepaid credits
Regions Where the app can run, with a note on EU regions
Uptime SLA Stated percentage and which plans it covers
GDPR / DPA Whether a data processing agreement is published

If a provider does not publish a field, the cell says so instead of guessing. Sometimes the absence is the useful fact: Railway does not state an uptime figure for its Hobby plan, and Heroku's pricing page lists no free tier at all.

How prices are calculated

Prices are list prices as shown, excluding VAT and sales tax. USD stays USD and EUR stays EUR; there is no currency conversion, because exchange rates would make the figure wrong within weeks. Providers such as Hetzner and Clever Cloud price in euros, and their rows say so.

Some providers only publish hourly or per-second rates. In that case the monthly figure is calculated at 730 hours, the average month, and marked as a calculation. Azure's B1 Linux plan is an example: Microsoft's retail price API returns an hourly rate, and the monthly figure in the table is that rate times 730.

Refresh cadence and freshness

A Java hosting comparison method is only as good as its update rhythm, because hosting plans change often. AWS stopped accepting new App Runner customers on April 30, 2026; Oracle moves Java licenses between terms on published dates. So each provider row is rechecked every quarter, and sooner when a provider announces a change. Every data table carries a short line with the month its figures were checked. Article text avoids hard-coded "today" dates, so a page never claims to be newer than its data.

Corrections

If you spot a figure that no longer matches the provider's page, send the link to the page that shows the new value. The row is checked against that page and corrected with a new check date. If a value cannot be confirmed on an official page, it comes out of the table. A gap is better than a guess.

Editorial policy

Under the same rules that decide how Java hosting is compared, providers are chosen because they can run a Java or JVM web app and publish enough data to compare. Positions in any list follow from the recorded data and the reader's use case, such as a free hobby app, a small production service or an EU-hosted app. Rankings are not sold. Some providers are recommended for one use and not for another; that is the point of recording sleep rules next to prices.

History of the address

The address has a long Java history. From around 1999 to at least 2006, mycgiserver.com was a free hosting service for Java servlets and JSP pages, with member accounts at tilde addresses and servlets running under a shared path. Sites such as apache.org, O'Reilly, Slashdot and W3C mailing lists linked to projects hosted there. After the service ended, the domain sat parked for years.

Today the address carries a guide to hosting and running Java apps: the Java hosting comparison, the support timeline for Java versions and the OpenJDK vs Oracle JDK licensing guide. The servlet era has its own page, the archive of member projects, which lists the classic projects other sites still link to.

Sources

  1. render.com/docs/free
  2. aws.amazon.com/apprunner
  3. azure.microsoft.com/en-us/pricing/details/app-service/linux
  4. oracle.com/java/technologies/java-se-support-roadmap.html

About / FAQ

Good questions.
Clear answers.

Where do the prices in the comparisons come from?

From each provider's own pricing page or documentation, read on the date shown with the data. Where a provider only publishes an hourly rate, the monthly figure is calculated at 730 hours and marked as a calculation. Prices are list prices without VAT or sales tax, in USD where the provider publishes USD and in EUR where it publishes EUR.

Do providers pay to be listed or ranked?

No. Rankings are not sold. A provider appears because it can run a Java or JVM app and publishes enough data to compare, and its position follows from that data: memory, sleep rules, price, regions and the other recorded fields.

How often is the data checked?

Each provider row is rechecked on a quarterly cycle and whenever a provider announces a change to its plans, such as a new free tier rule or a price change. Every table shows when its figures were checked, so you can see how fresh a value is before you rely on it.

What happens when a figure is wrong?

Send the provider page that shows the current value. The row is checked against that page, corrected if the page confirms it, and given a new check date. A figure that cannot be confirmed on an official page is removed rather than guessed.

Find your next step.