Java · Temurin JRE 21
Hosting Java 24/7
Sube un bot en JDA, una API Spring Boot o un worker de cola empaquetado en JAR y déjalo funcionando. La imagen trae el Temurin JRE, START define la línea del java -jar y la plataforma reinicia el proceso sola, en cualquier plan, cuando se cae.
Quién diseñó Java
James Gosling y el Green Team en Sun empezaron en 1991 un lenguaje llamado Oak, pensado para set-top y dispositivos. Rebautizado Java, se anunció en 1995 con la tesis write once, run anywhere: el compilador emite bytecode, la máquina virtual lo ejecuta en cualquier sistema. La 1.0 salió en 1996. No era solo una gramática — era la VM, las bibliotecas y la promesa de portabilidad.

James Gosling
Peter Campbell · CC BY-SA 4.0
El mismo programa en cualquier máquina
Write once, run anywhere no era eslogan: era el motivo. javac emite bytecode; la VM lo ejecuta en cualquier sistema que la tuviera — un binario por sistema era lo que Sun quería evitar.
La máquina virtual en el medio
Quien corre no es el procesador desnudo. Esa capa es la diferencia con C: portabilidad, bibliotecas y un modelo de memoria iguales en todas partes.
Lenguaje que nació con plataforma
Java no era solo la gramática. Era la VM, las APIs y la promesa de que el mismo código servía en el set-top, el escritorio y el servidor.
Lo que la plataforma hace por un proyecto Java
Lo esencial ya viene configurado en toda aplicación Java aquí; las funciones que dependen del plan se indican en la tarjeta.
El JAR arranca listo
La imagen ya trae el Temurin JRE; tú subes el artefacto empaquetado y START dice cómo ejecutarlo. No hay JDK que instalar ni Dockerfile que mantener en el repositorio.
Dos versiones, una línea de config
Temurin JRE 21 y 17 disponibles. Cambiar es modificar VERSION en vertracloud.config y volver a desplegar — el mismo JAR corre en las dos, siempre que se haya compilado para el destino correcto.
Heap dentro del techo del contenedor
MEMORY define cuánta RAM puede ocupar el contenedor y -Xmx en START limita el heap de la JVM por debajo de ese techo. Sin ese margen, la JVM crece hasta el límite del contenedor y el proceso se cierra por OOM.
Auto-reinicio con freno
Una excepción no capturada no tumba el servicio: el proceso se reinicia solo, en cualquier plan. Si se rompe 5 veces en 10 minutos, la plataforma marca crash loop y apaga el auto-reinicio durante 24 horas. Salir con exit code 0 no dispara reinicio.
Lo que la gente ejecuta en Java aquí
El mismo JAR sirve para el bot que queda conectado y para la API que responde en el subdominio.
Bots de Discord en JDA y Discord4J
El bot corre como proceso en segundo plano, sin puerto HTTP. El token va en las variables de entorno del panel, nunca en un .env dentro del zip — la plataforma no lee archivos .env.
APIs Spring Boot y Javalin
Publica la aplicación para recibir un subdominio en vertraweb.app con TLS. El servidor embebido tiene que escuchar en 0.0.0.0 en el puerto 80 — en localhost, la petición externa da timeout.
Workers y servicios programados
Consumidor de cola, rutina de integración, tarea programada: procesos largos que solo necesitan mantenerse en pie. El auto-reinicio cubre la caída ocasional de red sin intervención.
Aplicación con base de datos gestionada
Un PostgreSQL 17 o un MySQL 8.0 creado en el panel se vuelve la fuente de datos de Hibernate o Spring Data por la URL JDBC del host interno. TLS es obligatorio, y MySQL exige X509: el certificado de cliente va al truststore de la JVM.
Versiones de Java disponibles
Temurin JRE 21 es la recomendada y la más reciente; la 17 sigue disponible para un JAR compilado para un destino más antiguo. La elección es la clave VERSION del vertracloud.config.
| Versión | vertracloud.config | Estado |
|---|---|---|
| Temurin JRE 21 | VERSION=21 | RecomendadaMás reciente |
| Temurin JRE 17 | VERSION=17 |
La configuración entera
vertracloud.config es un archivo INI opcional en la raíz del proyecto. MAIN apunta al JAR; START trae la línea del java con las flags de heap; VERSION elige el JRE; MEMORY define el techo de RAM.
NAME=meu-app
MAIN=app.jar
START=java -Xmx256m -jar app.jar
VERSION=21
MEMORY=512Un plan para cada etapa del proyecto
La memoria y el almacenamiento cambian según el plan; el lenguaje, no. Compara lo que abre cada plan y elige el que le sirve al proyecto hoy.
Comparar planesTambién corre aquí
Misma plataforma, mismo deploy, otro stack.
Preguntas frecuentes sobre hosting Java
JAR, heap y memoria: lo que más llega a soporte en proyectos Java.
¿Qué versiones de Java puedo usar?
Temurin JRE 21 (recomendada y la más reciente) y Temurin JRE 17. La elección se hace con la clave VERSION en vertracloud.config; sin ella, la aplicación arranca en la recomendada.
Recibí no main manifest attribute al iniciar. ¿Qué es?
El JAR se empaquetó sin apuntar a la clase de entrada. Configura la herramienta de build para generar un fat JAR con Main-Class en el manifiesto — con Maven Shade, Assembly o el Shadow de Gradle — y sube ese artefacto.
Mi aplicación muere con OutOfMemoryError. ¿Cómo lo arreglo?
Java necesita 512 MB o más de RAM asignada. Sube el MEMORY y limita el heap por debajo del techo del contenedor con flags en START, por ejemplo java -Xmx256m -Xms128m -jar app.jar.
¿Puedo desplegar automáticamente en cada push?
Sí, a partir del plan Intermediary: el webhook de GitHub dispara un nuevo despliegue en cada push al repositorio conectado. En los planes inferiores, desplegar sigue siendo enviar el zip o pulsar el botón de despliegue del panel.
¿Qué debo dejar fuera del zip?
Las carpetas de build: target y .gradle. Sube el JAR empaquetado y el vertracloud.config — el límite del zip es 100 MB, y las clases sueltas y las cachés de build solo ocupan espacio.
Sube tu proyecto Java hoy
Crea la cuenta, sube el JAR empaquetado en un zip o conecta el repositorio de GitHub, y ajusta las flags de heap en START antes del primer arranque.
Crear cuenta