Java
Se detecta por archivos de Maven o Gradle. Si haces commit de un wrapper, la build lo usa.
Guías de despliegue paso a paso: Java, Spring Boot.
Consulta Buildpackspara ver cómo funcionan la detección y la política de versiones.
Detección
pom.xml (o un pom.* polyglot), build.gradle, build.gradle.kts, settings.gradle, settings.gradle.kts, mvnw o gradlew.
Versiones
La versión por defecto es Java 21. Ramas publicadas a septiembre de 2026: 11, 17, 21, 25, 26. Recibes el último parche de la rama solicitada. La build usa un JDK Eclipse Temurin. La imagen de runtime usa la JRE correspondiente.
Fija la versión en system.properties:
java.runtime.version=21
Valen formatos como 21, 21.0.12 o temurin-21. Java 8 no está soportado.
Instalación y build
gradlew:./gradlew build -x test --no-daemonmvnw:./mvnw -B -DskipTests clean package- Un POM de Maven sin wrapper: el Maven de Nodion, con los mismos objetivos de Maven
Un proyecto Gradle sin gradlew falla. Incluye el wrapper en el commit.
Al arrancar, JAVA_HOME apunta a la JRE y JAVA_TOOL_OPTIONS vale por defecto -XX:MaxRAMPercentage=80.0. Sobrescribe esa variable si necesitas otro comportamiento del heap.
Comando de inicio
java -Dserver.port=$PORT $JAVA_OPTS -jar <jar>. El JAR es el archivo más grande de target/ o build/libs/, sin contar los archivos JAR -plain, -sources y -javadoc. Si no encuentra ninguno, añade un Procfile. Tu app debe escuchar en PORT.