Java
Rilevato da file Maven o Gradle. Se fai il commit di un wrapper, la build usa quello.
Guide passo passo al deploy: Java, Spring Boot.
Vedi Buildpackper come funzionano il rilevamento e la politica delle versioni.
Rilevamento
pom.xml (o un pom.* polyglot), build.gradle, build.gradle.kts, settings.gradle, settings.gradle.kts, mvnw o gradlew.
Versioni
La versione predefinita è Java 21. Versioni pubblicate (aggiornate a settembre 2026): 11, 17, 21, 25, 26. Ricevi l'ultima patch della linea richiesta. La build usa un JDK Eclipse Temurin. L'immagine di runtime usa la JRE corrispondente.
Fissa la versione in system.properties:
java.runtime.version=21
Vanno bene forme come 21, 21.0.12 o temurin-21. Java 8 non è supportato.
Installazione e build
gradlew:./gradlew build -x test --no-daemonmvnw:./mvnw -B -DskipTests clean package- Un POM Maven senza wrapper: il Maven di Nodion, stessi goal
Un progetto Gradle senza gradlew fallisce. Fai il commit del wrapper.
All'avvio JAVA_HOME punta alla JRE e JAVA_TOOL_OPTIONS vale per impostazione predefinita -XX:MaxRAMPercentage=80.0. Sovrascrivi questa variabile se ti serve un comportamento diverso dell'heap.
Comando di avvio
java -Dserver.port=$PORT $JAVA_OPTS -jar <jar>. Il jar è il file più grande in target/ o build/libs/, esclusi i jar -plain, -sources e -javadoc. Se non ne trova nessuno, aggiungi un Procfile. Metti l'app in ascolto su PORT.