Java · Temurin JRE 21

Java hosting, 24/7

Ship a JDA bot, a Spring Boot API or a queue worker packaged as a JAR and leave it running. The image ships Temurin JRE, START holds the java -jar line, and the platform restarts the process on its own, on every plan, when it crashes.

Origin

Who designed Java

James Gosling and the Green Team at Sun started in 1991 a language called Oak, aimed at set-top boxes and devices. Renamed Java, it was announced in 1995 with the write once, run anywhere thesis: the compiler emits bytecode, the virtual machine runs it on any OS. 1.0 shipped in 1996. It was not only a grammar — it was the VM, the libraries, and the promise of portability.

James Gosling

Peter Campbell · CC BY-SA 4.0

The same program on any machine

Write once, run anywhere was not a slogan: it was the reason. javac emits bytecode; the VM runs it on any OS that had one — a binary per system was what Sun wanted to avoid.

The virtual machine in the middle

What runs is not the bare processor. That layer is the difference from C: portability, libraries and one memory model everywhere.

A language that shipped as a platform

Java was not only the grammar. It was the VM, the APIs and the promise that the same code served the set-top, the desktop and the server.

What the platform does for a Java project

The essentials come configured on every Java application here; the features that depend on your plan are flagged in the card.

The JAR starts ready

The image already ships Temurin JRE; you upload the packaged artifact and START says how to run it. There is no JDK to install and no Dockerfile to keep in the repository.

Two versions, one config line

Temurin JRE 21 and 17 are available. Switching means changing VERSION in vertracloud.config and deploying again — the same JAR runs on both, as long as it was compiled for the right target.

Heap inside the container ceiling

MEMORY sets how much RAM the container may take, and -Xmx in START keeps the JVM heap below it. Without that headroom the JVM grows to the container limit and the process is killed by OOM.

Auto-restart with a brake

An uncaught exception does not take the service down: the process is restarted on its own, on every plan. If it breaks 5 times in 10 minutes, the platform flags a crash loop and turns auto-restart off for 24 hours. Exiting with code 0 does not trigger a restart.

What people run in Java here

The same JAR covers the bot that stays connected and the API that answers on the subdomain.

Discord bots in JDA and Discord4J

The bot runs as a background process with no HTTP port. The token goes in the environment variables tab, never in a .env inside the zip — the platform does not read .env files.

Spring Boot and Javalin APIs

Publish the application to get a vertraweb.app subdomain with TLS. The embedded server has to listen on 0.0.0.0 port 80 — on localhost, external requests time out.

Workers and scheduled services

Queue consumer, integration routine, scheduled job: long-lived processes that only need to stay up. Auto-restart covers the occasional network drop without anyone stepping in.

An application with a managed database

A PostgreSQL 17 or MySQL 8.0 created in the dashboard becomes the Hibernate or Spring Data datasource through a JDBC URL on the internal host. TLS is mandatory, and MySQL requires X509: the client certificate goes into the JVM truststore.

Available Java versions

Temurin JRE 21 is both recommended and latest; 17 stays available for a JAR compiled against an older target. The choice is the VERSION key in vertracloud.config.

Versionvertracloud.configStatus
Temurin JRE 21VERSION=21RecommendedLatest
Temurin JRE 17VERSION=17

The entire configuration

vertracloud.config is an optional INI file at the root of the project. MAIN points to the JAR; START holds the java line with the heap flags; VERSION picks the JRE; MEMORY sets the RAM ceiling.

vertracloud.config
NAME=meu-app
MAIN=app.jar
START=java -Xmx256m -jar app.jar
VERSION=21
MEMORY=512

A plan for every stage of the project

Memory and storage change with the plan; the language does not. Compare what each plan unlocks and pick the one that fits the project today.

Compare plans

Also runs here

Same platform, same deploy, a different stack.

Frequently asked questions about Java hosting

JAR, heap and memory: what reaches support most on Java projects.

Which Java versions can I use?

Temurin JRE 21 (recommended and the latest) and Temurin JRE 17. The choice is made with the VERSION key in vertracloud.config; without it, the application starts on the recommended one.

I get no main manifest attribute on startup. What is it?

The JAR was packaged without pointing at the entry class. Configure the build tool to produce a fat JAR with Main-Class in the manifest — Maven Shade, Assembly or the Gradle Shadow plugin — and upload that artifact.

My application dies with OutOfMemoryError. How do I fix it?

Java needs 512 MB of allocated RAM or more. Raise MEMORY and keep the heap below the container ceiling with flags in START, for example java -Xmx256m -Xms128m -jar app.jar.

Can I deploy automatically on every push?

Yes, from the Intermediary plan on: a GitHub webhook triggers a new deploy on every push to the connected repository. On the plans below, deploying is still the zip upload or the deploy button in the dashboard.

What should I leave out of the zip?

The build folders: target and .gradle. Upload the packaged JAR and vertracloud.config — the zip limit is 100 MB, and loose classes and build caches only take up space.

Deploy your Java project today

Create an account, upload the packaged JAR in a zip or connect your GitHub repository, and set the heap flags in START before the first start.

Create account