Para poder compilar desde el terminal lo primero que debo comprobar es que tengo acceso desde el terminal cmd de Windows al compilador de java (javac), y también a la máquina virtual (java).
cmd.exe
javac
java
Si al ejecutar ambas instrucciones me aparecen las distintas opciones de uso de cada comando, es que el terminal reconoce los comandos.
Si me indica que “no se reconoce el comando…“ en alguno de los 2 casos, entonces debo añadirlo. Para añadirlo tan solo debo configurar la variable PATH del sistema con la ruta del directorio del jdk de java. Se explica aquí.
Para compilar hago uso del programa javac seguido del nombre del fichero .java
que quiero compilar.
javac ficheroFuente [opciones] #Ejemplo javac HolaMundo.java
Si existen errores de compilación nos lo mostrará e indicará la linea. Si todo está correcto, no mostrará nada pero generará un fichero .class
en el mismo directorio que el .java
Para compilar un fichero fuente que contiene la definición package (1ª linea del fichero fuente) debo compilarlo desde el directorio en el que se encuentra el package:
javac package/subpackage/HolaMundo.java
Para compilar varios ficheros tengo varias opciones:
javac HolaMundo.java Principal.java javac paquete1/HolaMundo.java paquete1/Principal.java
javac *.java javac paquete1/*.java paquete2/*.java
Para ejecutar haremos uso del comando java seguido del nombre del fichero .class
, pero sin incluir la extensión .class
:
java HolaMundo
En el caso de que la clase .java
tuviera la definición de package:
package com.fvaldeon.paquete1; public class HolaMundo{ }
java com/fvaldeon/paquete1/HolaMundo
Observar que a la hora de ejecutar un fichero compilado, no se indica su extensión al final (.class).
Para compilar un programa empaquetado en un fichero .jar
:
java -jar HolaMundo.jar
Desde Java 11 se permite ejecutar programas de un solo fichero fuente, sin necesidad de compilación previa.
java HolaMundo.java
La finalidad de esta nueva opción es permitir probar programas sencillos de forma sencilla y rápida, cuando estamos aprendiendo el lenguaje.
https://www.baeldung.com/java-single-file-source-code#launching-single
© 2025 Fernando Valdeón