Polyglot JVM Platform for modern apps


Deploy using Git, GitHub or directly from your CI system using precompiled builds with tools like SBT or Maven. Regardless of how your source is delivered, Heroku runs it in a dyno - a smart, secure, curated container with your choice of JVM version.


Manage your portfolio of apps in a single view using a straightforward Dashboard. Instantly see what version of your app is deployed and rollback to a stable version without recompiling. Manage your app’s environment specific configurations with external config vars.


Heroku’s horizontally scalable, share-nothing architecture is perfect for apps built with modern frameworks like Play, that are async, stateless and non-blocking. Heroku makes scaling out or up as simple as dragging a slider in the Dashboard or using a single CLI command.


View detailed memory and garbage collection metrics in your Dashboard with JVM runtime metrics. Connect remote debuggers and inspection tools like VisualVM, or generate heap and thread dumps on demand to help track down even the most elusive bugs.

Why JVM Languages on Heroku?

Choice of language and framework

Build microservices with Groovy and Ratpack, reactive APIs using Scala and Play, web apps with minimal fuss using Spark and high performance web apps with Spring Boot/Spring Cloud. Heroku provides buildpacks for Java, Scala, Play, Clojure, Gradle and Grails. Java on Heroku →

Curated language stacks, intelligent defaults

Get early access to the latest JDK as soon as it’s available. Heroku runs your app on the latest stable version, Java 8, by default. Heroku sets intelligent defaults for your max heap size and stack size based on the size of the dyno smart container your app is running in. Heroku’s Java support docs →

Extend your apps with 200+ Add-ons

Heroku add-ons like CloudAMQP, Postgres, Redis, Treasure Data (Hadoop as a service) and GrapheneDB (Neo4J as a service) allow you to extend, manage and deploy modern JVM-based applications without operational overhead. All Heroku Add-ons →

Built-in debugging and inspection tools

Heroku's Metrics dashboard helps you identify many kinds of performance problems, while key language specific metrics, like garbage collection activity and memory usage, are included in Heroku's Language runtime metrics dashboard. After you've identified an issue, you can use Heroku Exec to connect to a running dyno via SSH. Language runtime metrics docs →