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 Java 25 en Linux

En Ubuntu 26.04 / Debian

Ejecuta en tu terminal el instalador del paquete OpenJDK oficial:

sudo apt update
sudo apt install openjdk-25-jdk

En Fedora 43 / 44 / 45

Instala el paquete completo de desarrollo mediante dnf:

sudo dnf install java-25-openjdk-devel

A continuación, verifica que tanto el intérprete como el compilador responden con la versión 25:

java --version
javac --version

Si ambos comandos devuelven la versión esperada, tu máquina ya está lista para programar en Java sin requerir todavía ninguna herramienta adicional.

Qué versión de Java instalar en 2026: criterios prácticos

Tal como analizamos en nuestra guía técnica sobre novedades de Java 25 LTS y Java 26, el ecosistema publica nuevas versiones cada seis meses. Para configurar tu estación de trabajo, aplica esta regla directa:

  • Para aprender y construir proyectos nuevos: Instala JDK 25 LTS. Tendrás un soporte extendido de varios años, APIs consolidadas y cero volatilidad en tus dependencias.
  • Para investigar la vanguardia tecnológica: Puedes instalar JDK 26 para experimentar con HTTP/3 en HttpClient o las últimas previews de concurrencia estructurada.
  • Para trabajar en una empresa o proyecto existente: Utiliza la versión exacta que especifique el archivo pom.xml o build.gradle del proyecto (habitualmente Java 17, 21 o 25). Nunca actualices la versión de producción sin validar la compatibilidad de librerías.

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)
El síntoma de la instalación incompleta

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 oficiales de Ubuntu / Debian (APT)

Es la opción más simple y recomendada para principiantes:

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! (El gestor favorito de los desarrolladores)

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 install java 25-tem

# Cambiar de versión sólo en la terminal actual:
sdk use java 21-tem

# Establecer la versión por defecto del sistema:
sdk default java 25-tem

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.

Herramientas como Maven, Gradle, Android Studio, servidores Tomcat y pipelines de CI/CD dependen obligatoriamente de esta variable para compilar código.

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
Cuidado con la discrepancia de versiones

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 poder de JShell: pruebas interactivas en segundos

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-06 R y continúa siendo un estándar en telecomunicaciones, banca y administraciones públicas.

¿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.

Distinción técnica crítica: runtime de Eclipse vs JDK del proyecto

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.

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 soporte corporativo masivo. Proyectos empresariales legados, cursos universitarios y entornos de software libre estricto.
IntelliJ IDEA Autocompletado predictivo insuperable, refactorizaciones seguras, análisis estático y depurador sobresaliente. Desarrollo profesional moderno con Spring Boot, microservicios y proyectos de alta complejidad.
VS Code Extremadamente ligero, inicio rápido 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"

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 el sistema de ficheros de Linux (ext4, btrfs), la distinción es estricta: 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 atacantes.

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
Despliegue como servicio con systemd

En entornos de producción, las aplicaciones no se dejan corriendo en una terminal abierta. Se configuran como una unidad de systemd 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

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.

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 en una máquina con JRE 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, tu conocimiento técnico se mantendrá 100% intacto.

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:

Formación recomendada en Java

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.