What is Java on Zerops?
Zerops provides a fully managed Java runtime environment with automatic compilation, built-in Maven/Gradle support, and zero-config deployment. Build and deploy enterprise Java applications with reliability and performance.
Java is a high-level, class-based, object-oriented programming language designed to have as few implementation dependencies as possible. Learn more about Java →
Key Features
Multiple Java Versions Support for Java 8, 11, 17, and 21 LTS versions
Automatic Scaling Horizontal and vertical auto-scaling based on resource usage
Build Tool Support Built-in Maven and Gradle support for dependency management
JVM Optimization Configurable JVM parameters for optimal performance
Supported Versions
Java 21 (Latest LTS)
Java 17 (LTS)
Java 11 (LTS)
Java 8 (Legacy LTS)
You can change the Java version at any time through the zerops.yaml configuration.
Quick Example
project :
name : my-java-app
services :
- hostname : app
type : java@21
minContainers : 1
maxContainers : 3
buildFromGit : https://github.com/zeropsio/recipe-java-hello-world@main
enableSubdomainAccess : true
Runtime Environment
The Java runtime includes:
Alpine Linux or Ubuntu
OpenJDK (selected version)
Maven and Gradle
Git utilities
Zerops CLI tools
Common Use Cases
Deploy Spring Boot microservices and web applications. zerops :
- setup : app
build :
base : java@21
buildCommands :
- mvn clean package -DskipTests
deployFiles :
- target/*.jar
run :
start : java -jar target/app.jar
Run Jakarta EE applications on application servers. zerops :
- setup : webapp
build :
base : java@17
buildCommands :
- mvn clean package
deployFiles :
- target/*.war
run :
start : java -jar target/app.war
Microservices with Quarkus
Deploy cloud-native Java with Quarkus. zerops :
- setup : service
build :
base : java@21
buildCommands :
- ./mvnw package -Pnative
deployFiles :
- target/*-runner
run :
start : ./target/app-runner
Build Process
Maven Build
zerops :
- setup : app
build :
base : java@21
buildCommands :
- mvn clean install -DskipTests
deployFiles :
- target/*.jar
cache : ~/.m2/repository
Gradle Build
build :
base : java@21
buildCommands :
- gradle build -x test
deployFiles :
- build/libs/*.jar
cache : ~/.gradle/caches
Runtime Configuration
Standard JAR Execution
run :
start : java -jar app.jar
ports :
- port : 8080
httpSupport : true
With JVM Options
run :
start : java -Xmx512m -Xms256m -jar app.jar
envVariables :
JAVA_OPTS : "-Xmx512m -Xms256m"
Spring Boot Application
run :
start : java -jar app.jar --server.port=8080
envVariables :
SPRING_PROFILES_ACTIVE : production
JVM Optimization
Memory Configuration
run :
start : java -Xmx1g -Xms512m -XX:MaxMetaspaceSize=256m -jar app.jar
Garbage Collection
run :
start : java -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -jar app.jar
Container-Aware JVM
run :
start : java -XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0 -jar app.jar
Framework Examples
Spring Boot
zerops :
- setup : api
build :
base : java@21
buildCommands :
- mvn clean package -DskipTests
deployFiles :
- target/*.jar
run :
start : java -jar target/api-0.0.1-SNAPSHOT.jar
envVariables :
SPRING_PROFILES_ACTIVE : production
Quarkus
zerops :
- setup : app
build :
base : java@21
buildCommands :
- ./mvnw package -Dquarkus.package.type=uber-jar
deployFiles :
- target/*-runner.jar
run :
start : java -jar target/app-runner.jar
Micronaut
zerops :
- setup : service
build :
base : java@21
buildCommands :
- ./gradlew build -x test
deployFiles :
- build/libs/*-all.jar
run :
start : java -jar build/libs/app-all.jar
Database Integration
PostgreSQL with JDBC
import java.sql.Connection;
import java.sql.DriverManager;
public class Database {
public static Connection getConnection () throws Exception {
String url = String . format (
"jdbc:postgresql://db:5432/%s" ,
System . getenv ( "DB_NAME" )
);
return DriverManager . getConnection (
url,
System . getenv ( "DB_USER" ),
System . getenv ( "DB_PASSWORD" )
);
}
}
Spring Data JPA
run :
envVariables :
SPRING_DATASOURCE_URL : jdbc:postgresql://db:5432/${DB_NAME}
SPRING_DATASOURCE_USERNAME : ${DB_USER}
SPRING_DATASOURCE_PASSWORD : ${DB_PASSWORD}
Next Steps
Quickstart Guide Deploy your first Java application
Example Projects Explore Java examples on GitHub