Runtimes

Six runtimes. One control plane. Choose per application.

Every JavaGrove plan lets you provision independent JVM containers, each running the servlet container or application server your app expects, patched, monitored, and tuned by us.

What is a JVM container?

Not a shared process. Not a generic Docker box. A JVM built for one app.

A JVM container on JavaGrove is a dedicated Java Virtual Machine instance, provisioned with its own heap ceiling, thread pool, and CPU allocation, running exactly one runtime and one application. You pick the runtime, the Java version, and the resource limits; we handle the process supervision, patching, and restarts.

  • Dedicated heap and metaspace, no noisy-neighbor GC pauses
  • Independent restart, scaling, and patch schedule per container
  • Optional OCI/Docker packaging on Canopy & Enterprise plans
$ grove containers list
NAME          RUNTIME     JVM      HEAP    STATE
checkout-api  wildfly     21 LTS   1024Mi  running
auth-service  payara      21 LTS   512Mi   running
docs-site     tomcat      17 LTS   256Mi   running
batch-worker  tomee       25 LTS   768Mi   running
Supported runtimes

Pick the runtime that matches your architecture.

Apache Tomcat

The default for Spring Boot, lightweight servlet apps, and JSP sites. Fast cold starts and a minimal footprint make it the go-to for most new services.

Best for: microservices, REST APIs, Spring Boot

Jakarta Servlet 6.1JSPWebSocket

Eclipse Jetty

Embeddable and event-driven, Jetty shines in high-concurrency, low-latency workloads and apps that rely heavily on WebSockets or async I/O.

Best for: real-time apps, WebSocket gateways, embedded servers

Async I/OLow footprint

Eclipse GlassFish

The Jakarta EE reference implementation. Full EJB, JMS, JPA, and CDI support for teams building against the complete enterprise stack.

Best for: full Jakarta EE applications, enterprise integrations

Jakarta EE 11Full profile

Payara Server & Micro

A production-hardened GlassFish descendant with MicroProfile support, rolling/zero-downtime deploys, and built-in clustering.

Best for: enterprise apps that need clustering & MicroProfile

MicroProfileClusteringHot deploy

WildFly

Red Hat's modular Jakarta EE server. Domain-mode clustering and fine-grained subsystem configuration for large, multi-service deployments.

Best for: large enterprise deployments, JBoss migrations

Jakarta EE 10Domain mode

Apache TomEE

Tomcat's lightweight core with Java EE APIs (CDI, JAX-RS, JPA) layered in: a middle ground between a plain servlet container and full EE.

Best for: teams outgrowing Tomcat but not needing full EE

Web ProfileCDIJAX-RS
Quick picker

Not sure which runtime fits your stack? Start here.

Recommended: Apache Tomcat. Spring Boot ships its own embedded Tomcat by default, so deploying the packaged JAR or WAR to a Tomcat-backed JVM container is usually a drop-in fit. Jetty is a solid alternative if your app leans on WebSockets or reactive endpoints.

Recommended: GlassFish, Payara, or WildFly. If your app uses EJB, JMS, or full CDI, you need a runtime that implements the full Jakarta EE profile. Payara adds clustering and MicroProfile on top of the same GlassFish foundation.

Recommended: Eclipse Jetty or Payara Micro. Both start fast and carry a small memory footprint, which matters when you're running many small JVM containers instead of one large monolith.

Recommended: WildFly. As the upstream project behind Red Hat JBoss EAP, WildFly is typically the closest match for applications migrating off JBoss. Teams moving off Oracle WebLogic usually land on GlassFish or Payara instead.

JVM versions

Choose your JDK per container.

All builds are OpenJDK-based and kept current with security patches. Pick per JVM container and mix versions freely across one account.

VersionStatusTypical useAvailable on
Java 25Current LTSNew projects, latest language featuresAll plans
Java 21LTSEnterprise standard, broad library supportAll plans
Java 17LTSExisting Spring Boot 3.x / Jakarta EE appsAll plans
Java 11LTS (maintenance)Legacy application supportGrove, Canopy, Enterprise
Java 8Legacy (maintenance)Older Java EE / javax.* applicationsCanopy, Enterprise

Not sure which runtime fits your app?

Tell us how it's built and we'll recommend a runtime, JVM version, and container size before you commit.