Un Hola Mundo es un programa mínimo que muestra un mensaje por pantalla. Es el ejemplo tradicional para comprobar que el lenguaje y sus herramientas están bien instalados.
No nos vamos a limitar a copiar y pegar. Vamos a diseccionar la estructura clásica de un programa Java y a ejecutarlo desde la consola, para entender qué ocurre cuando pulsas el botón de ejecutar del IDE.
El código: HolaMundo.java
Abre cualquier editor de texto plano (Notepad, Bloc de notas, VS Code sin extensiones…) y escribe esto. Respeta las mayúsculas y minúsculas, Java es muy estricto con eso.
public class HolaMundo {
public static void main(String[] args) {
System.out.println("Hola Mundo desde Java");
}
}Guarda el archivo exactamente con el nombre HolaMundo.java.
Cuando una clase de nivel superior es public, el nombre del archivo debe coincidir exactamente con el de la clase. Si la clase es HolaMundo, el archivo tiene que ser HolaMundo.java.
Anatomía del código
Antes de ejecutarlo, vamos a entender qué acabamos de escribir. Java es conocido por ser “verboso” (muchas palabras). Cada una tiene una razón de ser.
public class HolaMundo
En la estructura tradicional de Java, el código se declara dentro de clases. Java 25 también permite archivos fuente compactos para programas pequeños, pero empezaremos por la forma clásica porque es la que encontrarás en proyectos reales.
class: Define que vamos a crear una clase.HolaMundo: Es el identificador (nombre) de la clase. Por convención usamos PascalCase (primera letra mayúscula).
public static void main(String[] args)
Este es el punto de entrada (entry point) clásico de la aplicación. Java 25 admite otras formas simplificadas de main, aunque esta sigue siendo la más reconocible y compatible.
public: El método debe ser accesible desde “fuera” (por la JVM).static: Concepto clave. Significa que este método pertenece a la clase y no a un objeto concreto. La JVM puede llamarlo sin tener que crear una instancia (new HolaMundo()) primero.void: No devuelve ningún valor. (A diferencia de C++, dondemainsuele devolver unintpara indicar el estado de salida).main: El nombre reservado que busca la JVM.String[] args: Es un Array de cadenas de texto. Aquí se reciben los argumentos que escribas en la consola al lanzar el programa.
System.out.println(...)
Es la instrucción estándar para imprimir en la consola.
System: Una clase del sistema.out: Un objeto estático dentro de System que representa la salida estándar (tu pantalla).println: Método “Print Line” (imprime y salta de línea).
Compilación y ejecución manual
Ahora vamos a hacer lo que hace el IDE por detrás. Abre tu terminal (CMD o PowerShell) y navega hasta la carpeta donde guardaste el archivo.
Compilar con javac
El ordenador no entiende tu archivo .java. Necesitamos traducirlo a Bytecode. Para eso usamos el compilador javac.
javac HolaMundo.javaSi todo ha ido bien… no pasará nada. En la filosofía Unix/Linux, “no news is good news”. Si no hay errores, el cursor simplemente saltará a la siguiente línea.
Ahora mira en tu carpeta. Habrá aparecido un nuevo archivo: HolaMundo.class.
Este archivo contiene el bytecode que puede ejecutar una JVM compatible en Windows, Linux o macOS, siempre que el programa no dependa de recursos nativos específicos de una plataforma.
Ejecutar con java
Ahora necesitamos arrancar la JVM para que lea ese Bytecode. Usamos el comando java (el lanzador).
java HolaMundo¡Cuidado! Fíjate que he escrito java HolaMundo y NO java HolaMundo.class.
Al ejecutar, indicamos el nombre de la clase, no el nombre del archivo. Si pones la extensión, te dará un error.
Si lo has hecho bien, verás en tu pantalla:
Hola Mundo desde Java
El ciclo de vida del programa
El proceso completo se puede resumir así:
Edición: Creas Archivo.java (Legible por humanos).
Compilación: javac Archivo.java -> Genera Archivo.class (Bytecode).
Carga: La JVM lee el .class y lo carga en memoria.
Verificación: La JVM comprueba que el Bytecode es seguro y válido.
Ejecución: La JVM traduce a código máquina y tu CPU ejecuta las instrucciones.