Para crear un programa en Java necesitas tres cosas: instalar el JDK, escribir el código en un archivo .java y compilarlo con javac para ejecutarlo con java. Con eso ya tienes tu primer programa funcionando, y desde ahí puedes crecer hacia proyectos reales con Maven o Gradle.

Lo esencial: instala el JDK (Java 21 LTS), crea un archivo Main.java con el método main, compílalo con javac Main.java y ejecútalo con java Main. Eso es un programa en Java.

Qué es Java: un lenguaje compilado y orientado a objetos. Su código se compila a bytecode que corre en la máquina virtual de Java (JVM), por eso el mismo programa funciona en Windows, Mac o Linux sin reescribirlo.

Cómo crear tu primer programa en Java paso a paso

Lo más rápido para empezar es escribir, compilar y ejecutar un programa mínimo desde la consola. Sigue estos pasos en orden.

  1. Instala el JDK. Descarga una versión LTS (recomendado Java 21, o Java 17 si lo prefieres) desde una build libre como Temurin (Adoptium) u OpenJDK. Tras instalar, comprueba que funciona con java -version y javac -version en la terminal.
  2. Crea una carpeta y un archivo. Crea una carpeta de trabajo (por ejemplo hola-java) y dentro un archivo llamado Main.java.
  3. Escribe el código. Pega el ejemplo más simple posible:
public class Main {
    public static void main(String[] args) {
        System.out.println("Hola, Java!");
    }
}
  1. Compila. Sitúate en la carpeta del archivo y ejecuta javac Main.java. Esto genera Main.class, el bytecode que entiende la máquina virtual de Java.
  2. Ejecuta. Corre java Main. Si en pantalla aparece Hola, Java!, ya tienes tu primer programa funcionando.

Cuando empieces a usar paquetes para organizar el código (por ejemplo package com.ejemplo.app;), tendrás que ejecutar con el nombre completo de la clase: java com.ejemplo.app.Main.

Cómo leer datos que escribe el usuario

Para que el programa interactúe con la persona que lo usa, lee la entrada por teclado con la clase Scanner:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("¿Cómo te llamas? ");
        String nombre = sc.nextLine();
        System.out.println("Encantado, " + nombre + "!");
        sc.close();
    }
}

Con esto ya manejas las dos operaciones básicas de cualquier programa de consola: mostrar texto y recibir datos.

Qué necesitas para programar en Java

El único requisito imprescindible es el JDK (Java Development Kit), que incluye el compilador javac y las herramientas de desarrollo. Con un editor de texto y la consola te basta para los primeros ejercicios, pero un IDE te ahorrará mucho tiempo en cuanto el código crezca.

HerramientaPara qué sirveRecomendación
JDKCompilar y ejecutar JavaJava 21 LTS (Temurin/OpenJDK)
IDEEscribir, depurar y autocompletarIntelliJ IDEA Community o VS Code
Gestor de dependenciasManejar librerías y automatizar tareasMaven o Gradle
Control de versionesGuardar y compartir el códigoGit + GitHub

Las opciones de IDE más usadas son IntelliJ IDEA Community (la más cómoda para aprender), VS Code con el Extension Pack for Java y Eclipse. Todas ofrecen autocompletado, depurador y atajos para compilar y ejecutar con un clic.

Para los requisitos de sistema te sobra con poco: el JDK 17 o 21, unos 4 GB de RAM y alrededor de 500 MB de espacio en disco. Si quieres guardar tu trabajo y colaborar desde el principio, conviene crear una cuenta de GitHub y subir tu repositorio.

Cómo organizar un proyecto que crece

Un solo archivo te vale para aprender, pero un proyecto real se estructura en paquetes (por ejemplo com.ejemplo.app) y separa el código fuente en src/main/java y las pruebas en src/test/java. Conviene seguir las convenciones del lenguaje desde el inicio:

  • Clases en PascalCase: Main, CalculadoraImpuestos.
  • Métodos y variables en camelCase: calcularTotal, miVariable.
  • Paquetes con dominios invertidos para evitar colisiones de nombres: com.miempresa.proyecto.
  • Método main como punto de entrada: public static void main(String[] args).

En cuanto el proyecto tenga varias clases y librerías externas, adopta un gestor de construcción. Con Maven, el archivo pom.xml define dependencias y plugins; con Gradle, lo hacen build.gradle o build.gradle.kts. Ambos automatizan compilar, testear y empaquetar.

Si quieres comparar enfoques y sintaxis entre lenguajes, mira cómo crear un programa en Python o crear un programa en C++. Contrastar paradigmas ayuda a elegir la herramienta adecuada para cada proyecto, y todos parten de la misma idea de crear un programa desde cero.

Cómo probar y empaquetar tu programa

Las pruebas automatizadas con JUnit 5 validan la lógica y evitan que un cambio rompa lo que ya funcionaba. Colócalas en src/test/java y ejecútalas con mvn test o gradle test. Desde el IDE puedes lanzarlas y depurarlas con un clic.

Para distribuir tu programa, lo habitual es generar un JAR ejecutable. Define la clase principal (Main-Class) en el manifiesto y empaqueta:

  • Con Maven: usa maven-jar-plugin o maven-shade-plugin (este incluye todas las dependencias) y ejecuta mvn package.
  • Con Gradle: aplica el plugin application y configura mainClass, o usa shadowJar para un JAR con dependencias.

Después lo ejecutas en cualquier equipo con Java instalado mediante java -jar miapp.jar.

Maven o Gradle: cuál elegir

HerramientaVelocidadCurva de aprendizajeConfiguraciónCuándo elegirla
MavenMediaBaja/mediaDeclarativa (XML)Proyectos corporativos, convención sobre configuración
GradleAlta (incremental)MediaDSL Groovy/KotlinBuilds rápidos, alta personalización, monorepos
AntMediaMediaImperativa (XML)Scripts heredados; hoy poco usado

Errores de compilación frecuentes

Cuando javac falla, el mensaje suele decir justo qué pasa. Estos son los más comunes al empezar:

Errores típicos de javac:

  • cannot find symbol: usas una variable o método mal escrito o no declarado. Revisa mayúsculas y que esté definido antes.
  • ';' expected: falta un punto y coma al final de una instrucción.
  • class Main is public, should be declared in a file named Main.java: el nombre del archivo debe coincidir con el de la clase pública.
  • incompatible types: asignas un tipo donde se espera otro (por ejemplo, un texto a un int).
  • non-static method ... cannot be referenced from a static context: llamas a un método de instancia desde main sin crear antes el objeto.

Buenas prácticas desde el principio

Adoptar estos hábitos te ahorra problemas cuando el código crece:

  • Programación orientada a objetos: aplica responsabilidad única y encapsulación, con métodos cortos y legibles.
  • Gestión de errores: usa excepciones específicas y try-with-resources para cerrar recursos automáticamente.
  • Logging: en producción usa SLF4J con Logback en lugar de System.out.println.
  • Calidad de código: integra análisis estático (SpotBugs, Checkstyle) y formateo (Spotless) en tu flujo.
  • Documentación: comenta las clases y métodos públicos con Javadoc.

Cuando domines lo básico, el siguiente salto natural es aprender Spring Boot para crear APIs REST y servicios web, o JavaFX si buscas interfaces de escritorio. Con estos cimientos ya tienes lo necesario para crear un programa en Java profesional y mantenible.

Preguntas frecuentes

¿Qué versión de Java debo instalar para empezar?

Elige una versión LTS por estabilidad y soporte extendido. Hoy la recomendación principal es Java 21 LTS, aunque Java 17 LTS sigue siendo una opción excelente para entornos que aún no han migrado. Evita versiones no LTS si buscas estabilidad a largo plazo.

¿Necesito un IDE o puedo programar Java con el bloc de notas?

Puedes escribir Java en cualquier editor de texto y compilarlo desde la consola con javac. Para los primeros ejercicios incluso es buena idea hacerlo así, porque entiendes qué ocurre por dentro. En cuanto el proyecto crece, un IDE como IntelliJ IDEA o VS Code te ahorra mucho tiempo con autocompletado y depurador.

¿Cuál es la diferencia entre javac y java?

javac es el compilador: convierte tu archivo .java en bytecode .class que entiende la máquina virtual. java es el lanzador: ejecuta ese bytecode. Por eso el flujo siempre es primero compilar con javac y luego ejecutar con java.

¿Cómo creo un JAR ejecutable con mi clase Main?

Define Main-Class en el manifiesto del JAR. Con Maven usa maven-jar-plugin o maven-shade-plugin para incluir dependencias y ejecuta mvn package. Con Gradle aplica el plugin application con su mainClass, o usa shadowJar. Luego lanzas el programa con java -jar archivo.jar.

¿Sirve Java para hacer aplicaciones Android?

Sí. Aunque hoy predomina Kotlin, Java sigue siendo válido en Android y en muchas librerías del ecosistema. Si tu meta es móvil, aprender los fundamentos de Java te servirá igualmente como base antes de dar el salto a Kotlin.

Guía revisada por comocrearun.org

Explicamos cada paso de forma clara y la actualizamos cuando algo cambia.