Shared hosting, many sites share one managed server
- Monthly
- Varies
- Control
- 1/5
- Java fit
- Limited
iRarely lets you keep your own JVM running.
Independent Java hosting & deployment guide
Free Java hosting and low-cost JVM plans, with the limits that matter: what each one costs, which JDK to ship on, and how to get from laptop to public URL without surprises.
Server atlas
From shared hosting to serverless: what each one is, what it costs, and which one runs Java best.
iRarely lets you keep your own JVM running.
iAWS Lambda: 1M requests and 400,000 GB-s free each month.
iFree tiers sleep; paid plans keep the JVM awake.
iOVHcloud VPS-1: 2 vCores and 4 GB from $4.54.
iAWS t4g.small (Arm) vs t3.small (x86), 730 hours.
iHetzner Server Auction, excl. VAT.


| Sun Enterprise 250 | Dell PowerEdge R7725 | |
|---|---|---|
| CPU | Up to 2x UltraSPARC-II, 400 MHz | 2x AMD EPYC 9005, up to 192 cores each |
| Max RAM | 2 GB in 16 slots | Up to 6 TB DDR5 in 24 slots |
| Storage | Up to 6 hot-plug drives (18 or 36 GB) | PCIe 5 NVMe |
| Power supply | 360 W, optional second for N+1 | Redundant hot-plug PSUs |
| Build | 46 cm tall, 53 kg, rack or deskside | 2U rack server |
Sources: Sun System Handbook, Dell R7725 spec sheet.
Form factors
1U44.45 mm
2U88.9 mm
4U177.8 mm
BladeModular, shared chassis
TowerStandaloneMaterials
SteelChassis, often galvanised SGCC sheet around 1 mm thick
AluminiumLighter panels and fins
CopperHeat sinks and heat pipes, about 401 W/m·K
Circuit boardGlass-fibre laminate carrying the traces
Liquid coolingDirect-to-chip plates take about 50 to 80% of the heat1U = 1.75 in (44.45 mm) under the EIA-310 rack standard.
| Use case | Server type | Why |
|---|---|---|
Learning | Free Arm VM or a 4 GB VPS | Oracle Always Free gives up to 2 Arm OCPUs and 12 GB; a VPS costs about $5 to $7. |
Small web app | 4 to 8 GB VPS | The JVM stays up, the price is fixed, little to manage. |
Production API | Arm cloud VM or a container platform | Autoscaling and load balancing; keep at least one instance running. |
Batch job | Serverless or spot VMs | Pay per GB-second for short work, spot pricing for long runs. |
Legacy WAR | VPS or dedicated server | A classic servlet container needs a long-lived JVM and full OS control. |
Ranked on four things: can the JVM stay on, RAM per euro, monthly cost, effort to run. Arm runs Java well: the OpenJDK AArch64 port has shipped since JDK 9.






Rack cases such as Chenbro's are sold in 1.0 to 1.2 mm SGCC, a galvanised steel sheet. A 2U case like this one is 88.9 mm tall, two rack units of 44.45 mm each.
Where Java runs today →AMD's EPYC 9965 has 192 cores and 384 threads at up to 3.7 GHz, with a 500 W TDP, and a two-socket Dell R7725 holds two of them. A JVM uses the cores it is given: garbage collection and the JIT compiler run on threads of their own.
Which Java version to run →Copper conducts heat at about 401 W/m·K, so the base plate and the heat pipes are made of it. The pipes carry heat from the CPU to the fins, where the air from the fans takes it away.
Compare hosting plans →A current 2U server such as the Dell PowerEdge R7725 takes up to 6 TB of DDR5 across 24 slots. The free Java plans on this site give you 512 MB to 12 GB of it, and the JVM heap, the operating system and your app's threads all have to fit inside that.
Free plans by RAM →Even a $4.54 OVHcloud VPS-1 comes with 40 GB of NVMe storage, enough for a JDK, your JAR and its logs. Fast disks help when the JVM loads its classes and when your app writes a lot of logs.
Deploy a Java app →Servers carry redundant hot-plug power supplies: if one fails, the other keeps the machine running and the dead unit is swapped without a shutdown. The 1990s Sun Enterprise 250 already took a second 360 W unit for N+1.
Compare hosting plans →Fans pull cold air in at the front, across the drives, memory and CPU, and push it out at the back. In dense racks, direct-to-chip liquid plates now take about 50 to 80% of the heat and the fans move the rest.
Compare hosting plans →01 / Find your fit
Free tiers and low-cost plans that run a JVM, with the limits that decide whether your app stays up.
| Hosting plan | Resources | Sleep rules | Monthly price | Payment | Regions | Uptime SLA | Details |
|---|---|---|---|---|---|---|---|
![]() Render FreeWeb service, Docker image | RAM512 MBCPU: Shared | Spins down after 15 min | FreeSource ↗ | Not stated | EUUSAP | Enterprise only | ↗ |
![]() Oracle Always FreeArm VM, install your own JDK | RAM12 GBCPU: 2 OCPU Arm | Idle VMs may be reclaimed | FreeSource ↗ | Card required | EUUSAP | Not stated | ↗ |
![]() Koyeb FreeOne free instance per org | RAM512 MBCPU: 0.1 vCPU | Scales to zero after 1 h | FreeSource ↗ | Not stated | EUUS | Scale plan only | ↗ |
![]() Fly.io shared-cpu-1xContainer, billed per second | RAM1 GBCPU: 1 shared | Runs while the Machine runs | $6.70Source ↗ | Card / Stripe Link | EUUSAP | Not stated | ↗ |
![]() Heroku BasicJava buildpack, always on | RAM512 MBCPU: Shared | Always on | $7Source ↗ | Card only | EUUS | Not stated | ↗ |
![]() DigitalOcean App PlatformContainer or buildpack | RAM512 MBCPU: 1 shared vCPU | Always on | $5Source ↗ | Card / PayPal / ACH | USEUAP | 99.95% | ↗ |
![]() Hetzner CAX11Cloud VM, from price excl. VAT | RAM4 GBCPU: 2 Arm vCPU | Always on | €6.49excl. VATSource ↗ | Card / SEPA / PayPal / wire | EU | Not stated | ↗ |
![]() Clever Cloud nanoNative Java runtime, WAR or JAR | RAM512 MBCPU: Shared | Always on | ~€6.08excl. VATSource ↗ | Card / PayPal / SEPA | EU | Not stated | ↗ |
![]() Azure App Service B1Java SE, Tomcat, JBoss EAP | RAM1.75 GBCPU: 1 core | Always on | ~$12.41Source ↗ | Not stated | EUUSAP | 99.95% | ↗ |
Hi, I guard your JVM. Tell me what you run and I will find where it fits.
Meet your Java guardian
Tell the guardian what you run. Get the plans that fit and the setup that works.
Where to run your Java app, and how to set it up. Prices checked at the source.
02 / A little guidance
Fat JAR, a small Docker image, sane JVM memory flags, health checks and a live URL.
Read the guide ↗

Migration / Intermediate
The javax to jakarta move, which Tomcat runs what, and the tools that convert old WARs.
Explore the migration →
Setup / Beginner
Versions, Servlet specs, licenses and the scenarios where each container fits.
Compare the two →03 / Java & licenses
Five long-term support releases are still in use. Support ends on different dates per vendor, and the Oracle JDK license changes with the version.
See every support date ↗Java 25, the newest LTS (September 2025): Oracle JDK 25 is free to use under NFTC, Premier Support until September 2030.
04 / Developer toolkit

Phone apps for server-side work,
rated by real users.
Around 2000 / The servlet archive
Member projects at /~name/ addresses, servlets, FTP servers and Java games from the early web.
mycgiserver / archiveMost advice on Java hosting starts with price. Start with memory instead. A JVM claims heap at startup, keeps compiled code in its own memory areas and loads every class your framework needs before it answers the first request. An app that runs happily on your laptop can fail on a 512 MB instance that would carry a Node or Go service without trouble. Figures checked in November 2026.
As a working rule, a lean app with a capped heap fits in 512 MB, and a typical Spring Boot service with a database driver is more comfortable at 1 GB. Modern JVMs read the container's memory limit, but by default they give the heap only a quarter of it: 128 MB on a 512 MB plan. Raise that share with -XX:MaxRAMPercentage, around 70 to 75 for a container that runs one app, instead of copying a fixed -Xmx from your laptop. A heap set larger than the plan allows is the usual reason for a container that restarts with exit code 137. Then compare plans by price per gigabyte, not price per instance. On that measure the spread is wide: Render's first paid instance is $7 for 512 MB, Fly.io runs 1 GB for $6.70 a month, and a Hetzner CAX11 virtual machine gives you 4 GB from EUR 6.49. The Java hosting comparison puts fifteen providers side by side on exactly these numbers.
Free Java hosting exists, but it usually sleeps. Render spins a free service down after 15 minutes without traffic, Koyeb after an hour. When the next visitor arrives, the container starts and the JVM boots from cold, which can take a minute or more. That is fine for a portfolio or a class project and annoying for anything people depend on. Northflank's Sandbox is described as always on. Oracle's Always Free VMs do not sleep on a timer, but Oracle may reclaim an instance whose CPU, network and memory use all stay under 20% for seven days. The free Java hosting breakdown lists the catches for each.
Platforms build Java in two ways. Some take your repository and run Maven or Gradle for you through a buildpack: Heroku, Koyeb and Railway's Railpack all have Java support. Others expect a finished Docker image. Builds on the platform are convenient, but a Gradle build with a cold cache can take minutes, and on usage-billed platforms that time is not always free. Building the image in your own CI and pushing it keeps deploys fast and predictable. The deployment guide walks through both routes.
If your app is a WAR rather than a self-contained JAR, the Tomcat version decides more than the host does. Tomcat 11 implements Servlet 6.1 with the jakarta.servlet packages and needs Java 17 or newer. Apps that still import javax.servlet run only on Tomcat 9, whose 9.0.x line is supported until 31 March 2027; Apache plans a 9.1.x branch with minimal changes that receives releases until 31 December 2030.
Three providers offer Tomcat hosting with the server managed for you. AWS Elastic Beanstalk has a platform with Corretto 25 and Tomcat 11, and charges only for the EC2 instances and other resources it creates. Azure App Service on Linux lists Tomcat as a built-in stack, from about $12.41 a month on the B1 plan with 1.75 GB of RAM. Clever Cloud runs WAR files natively from about EUR 4.56 a month for 256 MiB. On any other container platform, the official Tomcat Docker image gives you the same kind of Java web hosting. The Tomcat hosting guide covers each route.
Most Java apps also need a database, and the connection string trips up a lot of first deploys. The PostgreSQL JDBC driver expects a URL in the form jdbc:postgresql://host:port/db, while platforms often hand out a postgres://user:password@host/db URI. Heroku adds JDBC_DATABASE_URL in the JDBC format for Java apps; on other platforms you convert it yourself. Managed databases usually require encryption as well: Heroku Postgres accepts only TLS 1.2 or higher, so the URL needs sslmode=require. The database connection checklist goes through the errors one by one.
If your users or your contracts are in Europe, check where the provider can run your app. Render, Koyeb and Northflank offer Frankfurt, Railway has Amsterdam, Google Cloud Run lists more than a dozen European locations, and Hetzner and Clever Cloud are European companies with data centers in Germany, Finland and France.
This one rules out providers faster than anything else. Railway accepts only credit cards for subscriptions. Heroku takes credit cards but no PayPal, ACH or prepaid cards. Fly.io sells prepaid credits with a $25 minimum. Without a credit card, look at Hetzner (SEPA, bank transfer, PayPal), Clever Cloud (PayPal, SEPA) or DigitalOcean (PayPal, and ACH for qualifying US customers). Oracle asks for a card even on its free tier, only to verify you.
The runtime you ship on matters as much as the host. Java 25 is the current LTS release, and Heroku already defaults new Java apps to it. Free OpenJDK builds such as Eclipse Temurin and Amazon Corretto are licensed under GPL version 2 with the Classpath Exception and can run commercial apps in production at no cost. Oracle JDK is different: version 25 is free for all users under Oracle's No-Fee Terms, but updates released after September 2028 are planned to move to the Java SE OTN license, and Oracle JDK 8, 11, 17 and 21 are free for personal and development use only. The OpenJDK vs Oracle JDK comparison explains when that matters, and the Java versions timeline shows support end dates by vendor.
Once the app is live, you will want to reach the server from anywhere. The developer tools page rates SSH and cloud console apps for phones and includes a hosting plan calculator for sizing JVM memory. Java web hosting rewards a bit of preparation, and most surprises come from the same few places: memory, sleep rules, the database URL, region and payment.
05 / Before you deploy
Short answers, with links to the full guides.
Yes, with limits. Render, Koyeb and Railway have free tiers, Google Cloud Run includes a monthly free allowance, Azure offers the F1 plan, Northflank has an always-on Sandbox and Oracle Cloud's Always Free VMs give up to 12 GB of RAM on Arm. Most free tiers sleep or cap usage. The free Java hosting guide compares them.
Java 25 for anything new. It is the newest LTS release, out since September 2025, and the major free builds support it into the 2030s: Amazon Corretto to October 2032, Eclipse Temurin to at least September 2031. Stay on Java 21 or 17 only if a dependency is not ready. Details are on the Java versions page.
Tomcat 11 if you deploy WAR files and need servlets, JSP and WebSocket. Jetty 12.1 if you want one server that runs both javax and jakarta apps or embeds cleanly. A full Jakarta EE server such as WildFly 42 or GlassFish 8 when you need CDI, JPA and transactions managed by the container.
Yes. OpenJDK is licensed under GPL version 2 with the Classpath Exception, which lets you run commercial applications on it without paying. Builds such as Eclipse Temurin, Amazon Corretto and Microsoft's are free to use in production. Oracle JDK has its own license terms; see OpenJDK vs Oracle JDK.
A lean app with a capped heap fits in 512 MB, and a typical Spring Boot service with a database driver is more comfortable at 1 GB. By default the JVM gives the heap only a quarter of the container's memory, 128 MB on a 512 MB plan, so raise that share with -XX:MaxRAMPercentage. The exit code 137 page explains what happens when the heap outgrows the plan.
On a free plan it was probably asleep. Render spins a free service down after 15 minutes without traffic and needs about a minute to bring it back, and Koyeb scales to zero after an hour. The JVM then starts from cold and loads its classes before it answers. The slow first request page covers the fixes.
Around 2000, mycgiserver.com was a free hosting service for Java servlets and JSP pages. Member projects lived at addresses such as /~name/, and servlets ran under /servlet/. From 2004 it ran as MyJavaServer, with support from Javalobby, and in 2006 it still counted more than 47,000 developer accounts. The service later closed and the domain sat parked. Today the address hosts an independent guide to hosting and running Java applications.