El primer programa de siempre. En Java ha hecho falta durante treinta años una clase, un método estático y un arreglo de argumentos para escribir una línea de texto; desde Java 25 ya no.
También te puede interesar
La versión de toda la vida
public class HolaMundo {
public static void main(String[] args) {
System.out.println("Hola Mundo");
}
}Guarda el archivo como HolaMundo.java. El nombre del archivo tiene que coincidir con el de la clase, mayúsculas incluidas: es una regla del lenguaje, no una costumbre.
javac HolaMundo.java java HolaMundo
salidaHolaMundo.class Hola Mundo
El primer comando llama al compilador y deja un archivo HolaMundo.class, que no es código máquina sino bytecode. El segundo arranca la máquina virtual, que busca ese .class y ejecuta su método main. Al segundo comando no se le pone la extensión.
Qué significa cada palabra
| Palabra | Por qué está ahí |
|---|---|
public | para que la máquina virtual pueda llamar al método desde fuera |
static | para llamarlo sin crear antes un objeto HolaMundo |
void | no devuelve nada |
main | el nombre que la máquina virtual busca; ningún otro vale |
String[] args | los argumentos de la línea de órdenes, aunque no los uses |
System.out | la salida estándar; println es su método para escribir una línea |
String args[], con los corchetes detrás del nombre. Compila igual —es herencia de C—, pero la forma recomendada en Java es String[] args, con los corchetes pegados al tipo, porque lo que es un arreglo es el tipo, no la variable.Sin compilar: un solo comando
Desde Java 11 no hace falta compilar a mano para un archivo suelto:
java HolaMundo.java
salidaHola Mundo
La máquina virtual lo compila en memoria y lo ejecuta. No deja ningún .class en el disco. Para probar algo rápido es lo cómodo; para un proyecto de verdad se sigue compilando.
La forma corta de Java 25
Java 25 estrenó los archivos fuente compactos: si el programa es una sola cosa, no hace falta envolverlo en una clase ni declarar el método como público y estático.
void main() {
IO.println("Hola Mundo");
}java hola.java
salidaHola Mundo
Son nueve palabras menos. IO.println es una clase nueva de la biblioteca estándar que escribe en la consola sin pasar por System.out; también tiene IO.print y IO.readln para leer del teclado.
Lo que conviene recordar
| Para… | Haz |
|---|---|
| Compilar y ejecutar | javac Clase.java y luego java Clase |
| Ejecutar sin compilar | java Clase.java, con la extensión |
| Un programa de un archivo en Java 25 | void main() suelto, sin clase |
| Probar una línea sin crear archivos | jshell |
Más información en inglés: Hello World in Java.
Todo el código se compiló y se ejecutó con Java 25 LTS en un contenedor limpio antes de publicar esta página; las salidas están copiadas de esa ejecución.