Programar en Java sobre Linux no exige instalar Eclipse el primer minuto. Tampoco exige IntelliJ IDEA ni requiere necesariamente contar con un entorno gráfico de escritorio. Para crear, compilar y desplegar una aplicación profesional sólo necesitas comprender primero la cadena fundamental de la plataforma:
CÓDIGO .JAVA → JDK (Compilador javac) → BYTECODE .CLASS → JVM (Java Virtual Machine) → PROGRAMA EN EJECUCIÓN
Una vez asimilada esta base, puedes montar por encima el entorno de desarrollo que prefieras: Eclipse, IntelliJ IDEA, VS Code o NetBeans. Ésa es la diferencia sustancial entre quien simplemente sabe hacer clic en un botón verde de Run y quien comprende de verdad cómo funciona un entorno Java en un sistema operativo tipo Unix.
En esta guía técnica aprenderás a instalar y configurar Java 25 LTS en distribuciones como Ubuntu y Fedora, comprobar qué JDK está activo, gestionar múltiples versiones simultáneas, configurar de forma persistente la variable JAVA_HOME, compilar en la consola y conectar tu entorno con los principales IDEs del mercado.
Respuesta rápida: cómo instalar JDK 25 LTS en Linux
JDK 25 sigue siendo la opción LTS vigente en septiembre de 2026, aunque Java 27 es ya la versión feature más reciente. Si tu objetivo es aprender con una base estable o mantener proyectos durante más tiempo, JDK 25 continúa siendo una elección muy razonable.
Ubuntu 26.04
sudo apt update
sudo apt install openjdk-25-jdk
java --version
javac --version
Fedora
sudo dnf install java-25-openjdk-devel
java --version
javac --version
En Debian y otras distribuciones, comprueba primero qué versión ofrece el repositorio de tu release antes de copiar un nombre de paquete. Si necesitas una versión concreta independientemente del repositorio, utiliza una distribución OpenJDK mantenida o un gestor como SDKMAN.
Verificación 2026: Oracle identifica Java 27 como la versión más reciente y Java 25 como la LTS vigente; Ubuntu 26.04 y Fedora publican paquetes OpenJDK 25 de desarrollo.
Qué versión de Java instalar en 2026: criterios prácticos
A fecha de 16 de septiembre de 2026, Java 27 es la release feature más reciente, mientras que Java 25 continúa siendo la última versión LTS de Oracle. La diferencia importa porque una release feature y una LTS no responden exactamente al mismo objetivo.
- Para aprender con una base estable o iniciar un proyecto que prioriza soporte prolongado: JDK 25 LTS es una buena elección.
- Para experimentar con las novedades más recientes del lenguaje y la plataforma: prueba JDK 27 en un entorno separado, validando antes compatibilidad de IDE, build tools y librerías.
- Para un proyecto existente: utiliza la versión que defina el propio proyecto —por ejemplo en
pom.xml, Gradle, toolchains o CI— y planifica cualquier migración con pruebas.
Java mantiene una cadencia de releases semestrales. Por eso, nuestra guía de versiones y novedades de Java complementa este tutorial de instalación y te ayuda a decidir cuándo actualizar.
Fuentes oficiales: Oracle Java SE Support Roadmap y Java Downloads.
Fundamentos: comprendiendo JVM, JDK y JRE
Antes de configurar variables de entorno, es crítico distinguir las tres piezas de la arquitectura Java:
1. JVM (Java Virtual Machine)
Es el motor de ejecución. Toma el archivo .class (que contiene bytecode independiente del hardware) y lo compila dinámicamente a código máquina nativo mediante el compilador JIT (Just-In-Time).
2. JDK (Java Development Kit)
Es el paquete integral para programadores. Incluye el compilador (javac), la máquina virtual (java), el empaquetador (jar), el generador de documentación (javadoc), la consola interactiva (jshell) y herramientas de depuración y profiling.
3. ¿Qué ocurrió con el JRE?
Históricamente se instalaba el JRE (Runtime Environment) sólo para ejecutar programas. En el Java contemporáneo, los desarrolladores instalan directamente el JDK y las aplicaciones en producción se empaquetan habitualmente con runtimes a medida mediante jlink o dentro de imágenes Docker. Para programar, instala siempre el JDK.
Comprobar qué ejecutable estás utilizando y la arquitectura de Linux
En sistemas Linux es común tener enlaces simbólicos que apuntan a versiones anteriores. Antes de instalar nada, haz un diagnóstico de tu entorno:
# 1. Comprobar qué ejecutable responde en tu PATH:
which java
# O con el comando POSIX estándar:
command -v java
# 2. Descubrir la ruta real tras los enlaces simbólicos:
readlink -f "$(command -v java)"
# Ejemplo de salida: /usr/lib/jvm/java-25-openjdk-amd64/bin/java
# 3. Comprobar la arquitectura del procesador:
uname -m
# x86_64 (Intel/AMD de 64 bits) o aarch64 (ARM de 64 bits como Raspberry Pi o servidores Cloud)
Si ejecutas java --version y responde con éxito, pero al escribir javac --version el sistema devuelve command not found, significa que sólo tienes instalado un runtime básico sin las herramientas de compilación del JDK.
5 Métodos para instalar Java en Linux
Opción 1: Repositorios de tu distribución (APT)
En Ubuntu 26.04 es una opción sencilla y mantenida por la distribución:
sudo apt update
sudo apt install openjdk-25-jdk
Opción 2: Repositorios oficiales de Fedora / RHEL (DNF)
En la familia Red Hat, el paquete para desarrolladores incluye el sufijo -devel:
sudo dnf install java-25-openjdk-devel
Nota: Si instalas sólo java-25-openjdk sin el -devel, no dispondrás de javac ni de jar.
Opción 3: Eclipse Temurin (Adoptium)
Eclipse Temurin es una distribución OpenJDK de código abierto mantenida por la fundación Eclipse Adoptium, ampliamente utilizada en entornos de producción:
# Tras configurar las claves y repositorio de Adoptium:
sudo apt install temurin-25-jdk
Opción 4: Instalación manual mediante archivo tarball (.tar.gz)
Excelente cuando deseas colocar una versión privada del JDK en /opt/ sin tocar la paquetería global del sistema:
# Descargar y descomprimir en /opt:
tar -xzf openjdk-25_linux-x64_bin.tar.gz
sudo mv jdk-25* /opt/jdk-25
Opción 5: SDKMAN! para gestionar varias versiones por usuario
Si necesitas alternar a diario entre Java 17, Java 21 y Java 25, SDKMAN! simplifica la gestión de versiones en Linux:
# Instalar SDKMAN:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
# Ver versiones disponibles de Java:
sdk list java
# Instalar Java 25:
sdk list java
# Elige un identificador disponible; por ejemplo, en septiembre de 2026:
sdk install java 25.0.4-tem
# Cambiar de versión sólo en la terminal actual:
sdk use java 21.0.8-tem
# Establecer la versión por defecto para tu usuario/shell administrada por SDKMAN:
sdk default java 25.0.4-tem
Documentación: JDK 25 Documentation, Fedora OpenJDK 25 y SDKMAN Usage.
Configurar y persistir la variable JAVA_HOME en Linux
La variable de entorno JAVA_HOME debe apuntar al directorio raíz de la instalación del JDK (donde se encuentran las carpetas bin, lib e include), nunca al archivo binario ejecutable.
Muchas herramientas de build, servidores y pipelines utilizan JAVA_HOME para localizar un JDK, aunque algunas también pueden resolver Java por otros mecanismos o toolchains. Configurarla de forma coherente evita ambigüedades cuando conviven varias versiones.
Paso 1: Localizar la ruta exacta del JDK
readlink -f "$(command -v javac)"
# Si devuelve: /usr/lib/jvm/java-25-openjdk-amd64/bin/javac
# Tu JAVA_HOME es: /usr/lib/jvm/java-25-openjdk-amd64
Paso 2: Persistir la variable en tu Shell (Bash / Zsh)
Abre tu archivo de configuración de usuario en tu editor favorito:
nano ~/.bashrc # Si usas Zsh, edita ~/.zshrc
Añade al final del archivo estas dos líneas:
export JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64
export PATH="$JAVA_HOME/bin:$PATH"
Aplica los cambios en tu sesión actual sin reiniciar el sistema:
source ~/.bashrc
echo "$JAVA_HOME" # Debe imprimir la ruta configurada
Gestionar varias versiones de Java con update-alternatives
En Debian, Ubuntu y Linux Mint, el sistema cuenta con el mecanismo update-alternatives para seleccionar qué versión de un comando debe responder globalmente cuando coexisten varios paquetes instalados:
# 1. Configurar el intérprete java:
sudo update-alternatives --config java
# 2. Configurar el compilador javac (¡imprescindible que coincidan!):
sudo update-alternatives --config javac
Uno de los errores más desconcertantes en Linux ocurre cuando configuras java apuntando a Java 25, pero dejas javac apuntando a Java 17 o Java 21. Comprueba siempre que ambas herramientas reporten exactamente la misma versión ejecutando java --version && javac --version.
Tu primer programa Java en consola y experimentación con JShell
Para consolidar tu aprendizaje, escribe tu primer programa desde la terminal utilizando comandos estándar de Linux:
mkdir -p ~/java-lab && cd ~/java-lab
nano HolaLinux.java
Escribe el siguiente código fuente:
public class HolaLinux {
public static void main(String[] args) {
System.out.println("Java 25 funcionando en Linux con éxito.");
}
}
Compila y ejecuta:
javac HolaLinux.java # Genera HolaLinux.class (bytecode)
java HolaLinux # La JVM ejecuta el bytecode
El JDK incluye JShell, una consola interactiva (REPL) que te permite evaluar expresiones, probar colecciones y validar algoritmos sin crear proyectos ni archivos:
jshell
# Dentro de JShell escribe:
jshell> var nombres = List.of("Álvaro", "Carlos", "Diana");
jshell> nombres.stream().filter(s -> s.startsWith("A")).toList();
jshell> /exit
Eclipse IDE en 2026: instalación y configuración con Java 25
A pesar de la popularidad de alternativas como IntelliJ IDEA, Eclipse IDE sigue completamente vivo en 2026. Su release estable consolidada es Eclipse IDE 2026-09 R y sigue siendo una opción profesional activa para desarrollo Java.
¿Qué edición descargar?
Descarga Eclipse IDE for Java Developers. Incluye las herramientas de desarrollo Java (JDT), cliente Git integrado, soporte XML y gestión de proyectos con Maven y Gradle. Evita la edición Enterprise al principio si sólo estás aprendiendo los fundamentos del lenguaje para no saturar tu espacio de trabajo.
Los paquetes modernos de Eclipse para Linux vienen acompañados de su propia máquina virtual para arrancar el entorno gráfico. El Java que usa Eclipse para abrirse no tiene por qué ser el JDK con el que compilas tus proyectos.
Dentro de Eclipse, dirígete a:
Window → Preferences → Java → Installed JREs
Haz clic en Add... → Standard VM y selecciona la ruta de tu JDK en /usr/lib/jvm/java-25-openjdk-amd64 para asegurarte de que tus proyectos aprovechen las novedades de Java 25.
La edición Eclipse IDE for Java Developers 2026-09 R incluye JDT, Git, Maven y Gradle.
Comparativa: Eclipse vs IntelliJ IDEA vs VS Code
No conviertas la elección del editor en un debate interminable. Las tres herramientas son plenamente profesionales:
| Entorno | Ventajas principales | Cuándo elegirlo |
|---|---|---|
| Eclipse IDE | 100% código abierto, consumo moderado, compilador incremental propio (ECJ) y ecosistema maduro y extensible. | Proyectos empresariales legados, cursos universitarios y entornos de software libre estricto. |
| IntelliJ IDEA | Autocompletado, refactorizaciones, análisis estático y depuración integrados. | Desarrollo profesional moderno con Spring Boot, microservicios y proyectos de alta complejidad. |
| VS Code | Enfoque modular y arranque ágil y entorno unificado si trabajas simultáneamente con Python, Rust o Bash. | Equipos con recursos modestos, scripts rápidos y desarrolladores políglotas. |
El siguiente nivel: control de versiones con Git y gestión de dependencias con Maven
En el desarrollo profesional nunca se copian archivos .jar a mano en una carpeta. Se utiliza una herramienta de construcción (build tool) como Apache Maven:
sudo apt install maven # O sudo dnf install maven
mvn --version # Comprueba la versión de Maven y qué JAVA_HOME utiliza
Estructura de directorios estándar de un proyecto Maven
mi-aplicacion/
├── pom.xml # Configuración de dependencias, plugins y versión de Java
├── .gitignore # Archivos que Git debe ignorar (target/, .idea/, .project)
└── src/
├── main/
│ └── java/ # Código fuente de tu aplicación (packages)
└── test/
└── java/ # Pruebas unitarias con JUnit
Enlazar esta estructura con Git es inmediato en la consola de Linux:
git init
git add .
git commit -m "Estructura inicial del proyecto Maven con Java 25"
Maven documenta src/main/java, src/test/java y pom.xml como su layout convencional; puede personalizarse si el proyecto lo necesita.
Buenas prácticas de desarrollo Java en Linux
1. Jamás ejecutes tu IDE ni tus aplicaciones con sudo
Si lanzas sudo eclipse o sudo java App para solucionar un fallo de permisos, generarás archivos propiedad del superusuario dentro de tu carpeta /home. La solución correcta es ajustar los permisos con chmod y chown, nunca sortearlos como root.
2. Configura secretos y credenciales mediante variables de entorno
Nunca escribas contraseñas en duro dentro de tu código Java. En Linux, exporta la variable y léela con System.getenv():
export DB_PASSWORD="ClaveSegura2026"
String pass = System.getenv("DB_PASSWORD");
3. Ten presente la sensibilidad a mayúsculas y minúsculas
En sistemas Windows, Main.java y main.java pueden confundirse. En configuraciones Linux habituales con sistemas de archivos sensibles a mayúsculas/minúsculas, la distinción importa: el nombre del archivo público debe coincidir de forma exacta con el identificador de la clase.
5 Proyectos prácticos para conectar Java con el sistema operativo Linux
Proyecto 1: Inspector de propiedades del entorno y hardware
void main() {
System.out.println("Sistema operativo: " + System.getProperty("os.name"));
System.out.println("Versión de Java: " + System.getProperty("java.version"));
System.out.println("Directorio HOME: " + System.getProperty("user.home"));
System.out.println("Arquitectura CPU: " + System.getProperty("os.arch"));
}
Proyecto 2: Gestor de procesos y lecturas de Linux
Lee las variables de entorno del usuario (USER, SHELL, LANG) y muestra el uso de memoria de la JVM mediante Runtime.getRuntime().freeMemory().
Proyecto 3: Manipulación de ficheros con java.nio.file
Utiliza Path y Files para recorrer el directorio /var/log, comprobar permisos de lectura y copiar ficheros de configuración respetando atributos POSIX.
Proyecto 4: Analizador forense de logs de Apache o Nginx
Procesa un fichero access.log con la Stream API para contar cuántas respuestas devolvieron códigos de error 404 y agrupar las IPs de origen asociadas a esas solicitudes.
Proyecto 5: Cliente HTTP asíncrono con HttpClient
Realiza peticiones REST a un servicio local o en la nube, procesa el payload JSON y mide la latencia de respuesta bajo hilos virtuales en Java 25.
Java en producción: empaquetado JAR, systemd y Docker
Cuando tu aplicación está lista para producción, el flujo estándar en servidores Linux comprende:
# 1. Empaquetar la aplicación en un archivo JAR ejecutable con Maven:
mvn clean package
# 2. Ejecutar el archivo generado:
java -jar target/mi-aplicacion-1.0.jar
# 3. Inspeccionar el contenido interno del archivo comprimido:
jar tf target/mi-aplicacion-1.0.jar
En servidores Linux que utilizan systemd, una aplicación de larga ejecución puede gestionarse como una unidad en /etc/systemd/system/mi-app.service para que arranquen automáticamente con el servidor y se reinicien ante fallos.
Para auditar eventos y fallos en producción, consulta nuestra guía sobre Linux para ciberseguridad y lectura de logs con journalctl.
Roadmap de 10 etapas: de la terminal a desarrollador backend
Este roadmap de 10 etapas es una secuencia pedagógica propuesta para este artículo; no es un estándar oficial del ecosistema Java y puedes adaptarlo a tu experiencia y al tipo de proyecto.
| Etapa | Hito formativo | Herramientas y competencias |
|---|---|---|
| Etapa 1 | Consola Linux básica | Navegación espacial con pwd, ls, cd, mkdir y cat. |
| Etapa 2 | Instalación de JDK | Instalar OpenJDK 25, verificar versiones y dominar jshell. |
| Etapa 3 | Fundamentos de lenguaje | Variables, tipos primitivos, bucles, métodos y arrays. |
| Etapa 4 | POO rigurosa | Clases, encapsulamiento, herencia, polimorfismo e interfaces. |
| Etapa 5 | Java Moderno | Records inmutables, Sealed Classes, Text Blocks y Pattern Matching. |
| Etapa 6 | Entorno IDE | Manejo de Eclipse o IntelliJ IDEA y depuración profesional con breakpoints. |
| Etapa 7 | Control de versiones | Gestión de repositorios locales y remotos con Git y GitHub. |
| Etapa 8 | Build Tools | Gestión de dependencias, plugins y ciclo de compilación con Maven o Gradle. |
| Etapa 9 | Testing unitario | Validación automatizada de código con JUnit y aserciones. |
| Etapa 10 | Backend y Despliegue | APIs REST con Spring Boot, bases de datos SQL, contenedores Docker y Linux. |
Cuando llegues a Java moderno y modelado de datos, continúa con registros, structs y records en programación para comparar cómo distintos lenguajes representan datos estructurados.
Troubleshooting: resolución de los errores más frecuentes
1. "java: command not found"
Causa: Java no está instalado o la carpeta bin no se encuentra en la variable PATH del sistema. Ejecuta sudo apt install openjdk-25-jdk o revisa tu ~/.bashrc.
2. "javac: command not found"
Causa: Tienes instalado un runtime básico sin el kit de desarrollo. En Fedora instala java-25-openjdk-devel; en Ubuntu instala openjdk-25-jdk.
3. "JAVA_HOME is not defined correctly"
Causa: La variable apunta al binario /bin/java en lugar de a la carpeta raíz del JDK, o la ruta contiene un error tipográfico. Verifica con echo $JAVA_HOME && ls $JAVA_HOME.
4. "UnsupportedClassVersionError"
Causa: El código fue compilado con una versión más moderna de Java de la que se está utilizando para ejecutarlo (por ejemplo, compilado con JDK 25 pero ejecutado con un runtime/JDK 17). Alinea ambas versiones con update-alternatives.
5. Maven dice "invalid target release"
Causa: El archivo pom.xml solicita una versión superior a la que Maven está utilizando. Comprueba con mvn --version qué versión de Java está asociada a Maven.
Preguntas frecuentes sobre Java en Linux (FAQ)
¿Cómo instalar Java en Ubuntu en 2026?
Ubuntu 26.04 ofrece actualmente OpenJDK 25 en sus repositorios oficiales. Basta con ejecutar sudo apt update && sudo apt install openjdk-25-jdk y validar con java --version y javac --version.
¿Cómo instalar Java 25 en Fedora?
En Fedora el paquete de desarrollo se instala mediante sudo dnf install java-25-openjdk-devel.
¿Qué JDK debería utilizar para aprender Java?
Recomendamos Java 25 LTS. Ofrece estabilidad a largo plazo, compatibilidad total con librerías empresariales y todas las mejoras de lenguaje contemporáneas.
¿Qué es Eclipse Temurin?
Es una distribución OpenJDK de código abierto mantenida por el proyecto Eclipse Adoptium. Proporciona binarios testeados con la suite TCK para Ubuntu, Debian, RHEL, Alpine y otras plataformas.
¿Qué es SDKMAN?
Es un gestor de versiones por consola para sistemas tipo Unix. Permite instalar, desinstalar y alternar entre decenas de versiones de Java, Maven y Gradle con un solo comando.
¿Necesito configurar JAVA_HOME obligatoriamente?
Para ejecutar un programa básico basta con que java esté en el PATH. Sin embargo, herramientas como Maven, Gradle y entornos de despliegue requieren obligatoriamente que JAVA_HOME esté declarada.
¿Cómo sé qué Java estoy ejecutando exactamente?
Ejecuta java --version para conocer el número de release y readlink -f "$(command -v java)" para obtener la ruta física real en disco.
¿Puedo tener varias versiones de Java instaladas a la vez?
Sí. Puedes gestionarlas mediante sudo update-alternatives --config java o a través de SDKMAN!.
¿Eclipse sigue siendo útil en 2026?
Sí. Eclipse IDE mantiene soporte activo con su release 2026-06 R y es ampliamente utilizado en entornos corporativos.
¿Cuál es mejor: Eclipse o IntelliJ IDEA?
Ambos son excelentes. IntelliJ ofrece una experiencia más moderna y pulida, mientras que Eclipse destaca por ser 100% libre y muy extensible.
¿Puedo programar Java con Visual Studio Code?
Sí. Con el paquete oficial Extension Pack for Java de Microsoft, VS Code se convierte en un entorno completo con soporte de lenguaje, depuración y Maven.
¿Puedo aprender Java sólo desde la terminal?
Por supuesto. De hecho, es la forma recomendada para los primeros días: compilar con javac y ejecutar con java te enseña cómo funciona la plataforma antes de delegar en un IDE.
¿Necesito Linux para programar en Java?
No es obligatorio, pero es una ventaja formativa decisiva: la inmensa mayoría de servidores en la nube, microservicios y contenedores Docker se ejecutan sobre distribuciones Linux.
Aprende Java, no únicamente la interfaz de un IDE
La pregunta que muchos estudiantes se formulaban históricamente era: "¿Cómo instalo Eclipse para programar en Java?". La pregunta profesional que debes formularte hoy es: "¿Cómo construyo un entorno de desarrollo Java que entiendo de principio a fin?".
Cuando comprendes qué papel cumple el sistema operativo Linux, cómo se compila el código en bytecode, qué hace la máquina virtual y cómo intervienen JAVA_HOME y Maven, el editor se convierte en lo que realmente es: una herramienta de asistencia. Si mañana decides migrar de Eclipse a IntelliJ IDEA o a VS Code, la mayor parte de esos fundamentos seguirá siendo transferible entre herramientas.
Para estructurar tu formación profesional con ejercicios reales y simulaciones técnicas de contratación, da el siguiente paso en nuestra formación oficial:
Programador Java en 37 Días con práctica de Entrevista y más: el curso específico de Java dentro de la Ruta de Programación desde Cero de Álvaro Chirou, diseñado para que adquieras soltura técnica, buenas prácticas y preparación directa para el mercado laboral.
Y para complementar tu destreza en consola, no dejes de explorar nuestra guía sobre cómo practicar Linux online gratis en el navegador.
