Método main() en Java: Punto de Entrada Explicado
¿Qué es el método main() en Java? Aprende su firma public static void main(String[] args), sus partes y cómo pasar argumentos por línea de comandos.

El método main() es el punto de entrada de todo programa en Java. La JVM (Java Virtual Machine) lo busca para iniciar la ejecución. Su firma es public static void main(String[] args) y debe ser público, estático y recibir un array de Strings como parámetro.
Método main() en Java: Punto de Entrada Explicado
Última actualización: agosto 2026
Contenido Rápido
main()es el punto de entrada de todo programa Java- Firma:
public static void main(String[] args) String[] argsrecibe argumentos de línea de comandosstaticpermite ejecutar el método sin instanciar la clase- La JVM busca el método main() para iniciar la ejecución
Comparación rápida: Partes del método main()
| Parte | Qué hace | Ejemplo |
|---|---|---|
public | Especificador de acceso: permite que la JVM encuentre el punto de entrada | public |
static | Permite invocar el método sin crear un objeto | static |
void | Indica que el método no devuelve ningún valor | void |
main | Nombre predeterminado que la JVM busca para iniciar la ejecución | main |
String[] args | Recibe los argumentos de la línea de comandos | String[] args |
El método main() en Java es uno de los métodos más usados del lenguaje, ya que sin él no podríamos ejecutar nuestros programas. En este artículo vamos a ver qué es, cómo funciona y qué significa cada una de sus partes.
Partes del método main()
Vamos a empezar explicando qué significa cada una de las partes del método main():
public static void main(String[] args)
¿Quieres probarlo sin instalar nada? Ejecuta este código en el Java Playground, el editor online de CodeJa que compila código Java en el navegador.
public: Es un especificador de acceso. Debemos usar la palabra clave public antes del método main() para que la JVM pueda identificar el punto de ejecución del programa. Si usamos private, protected o default antes del método main(), no será visible para la JVM.
static: hace que un método sea estático utilizando la palabra clave static. Deberíamos llamar al método main() sin crear un objeto. Los métodos estáticos se invocan sin crear un objeto y son propios de la clase, por lo que no necesitamos ningún objeto para llamar al método main().
void: en Java, cada método tiene un tipo de retorno. La palabra clave void indica al compilador que el método main() no devuelve ningún valor.
main(): es el nombre predeterminado que está predefinido en la JVM y sirve para identificar que el método va a ser un método de ejecución. La JVM lo llama para ejecutar un programa línea por línea y finalizar la ejecución después de completar este método. También podemos sobrecargar el método main().
String[] args: el método main() también acepta algunos datos del usuario. Acepta un grupo de cadenas, que se denomina matriz de cadenas o vector. Se utiliza para contener los argumentos de la línea de comandos en forma de valores de cadena.
Nota: Un programa sin el método main() compilará, pero no se ejecutará, porque la JVM no reconocerá el método main(). Recuerda que la JVM siempre busca el método main() con una matriz de tipo String como parámetro.
Parámetro String[] args
Aquí, args es el nombre de la matriz y es de tipo String. Significa que puede almacenar un grupo de cadenas. Recuerda que esta matriz también puede almacenar un grupo de números, pero solo en forma de cadena. Los valores pasados al método main() se denominan argumentos. Estos argumentos se almacenan en la matriz args, por lo que generalmente se usa el nombre args.
main(String[] args)
Para pasar un parámetro se ha de indicar después de la llamada a la ejecución de nuestro programa. Por ejemplo:
java Main --hola
En el ejemplo anterior vemos las tres partes de la línea de comandos:
java: es la llamada al intérprete de Java de nuestro entorno, normalmente suele estar configurada en nuestra variable de entorno.
Main: nuestro programa en bytecode a ejecutar, normalmente se obtiene compilando un archivo .java, que en este caso puede ser Main.java.
--hola: este es el argumento que pasamos a nuestro programa y será recogido en el parámetro String[] args. Los guiones delante del argumento son opcionales, pero suelen usarse para indicar que el argumento será usado en nuestro programa como argumento.
Preguntas Frecuentes
¿Qué es main() en Java?
main() es el método de entrada de todo programa en Java. Es el punto donde la JVM (Java Virtual Machine) comienza la ejecución del código. Sin un método main, un programa Java no puede ejecutarse de forma independiente.
¿Qué es String[] args?
String[] args es el parámetro del método main que recibe argumentos de línea de comandos. Es una matriz de cadenas que contiene los valores que el usuario pasa al ejecutar el programa. Por ejemplo: java MiPrograma arg1 arg2.
¿Por qué main es static?
main es static porque la JVM necesita llamarlo sin instanciar la clase. Como no existe ningún objeto al momento de iniciar el programa, el método debe ser accesible directamente desde la clase. Por eso se declara con la palabra clave static.
¿Puede haber varios métodos main en una clase?
No puedes tener múltiples métodos main con la misma firma (mismos parámetros). Sin embargo, puedes tener múltiples métodos main en diferentes clases del mismo proyecto. La JVM ejecuta el método main de la clase que se especifica al compilar o ejecutar.
¿Cómo ejecuta Java el método main?
Cuando ejecutas java MiClase, la JVM carga la clase, busca el método main con la firma exacta (public static void main(String[] args)) y comienza la ejecución desde ahí. Si no encuentra el método main o la firma no coincide, lanza un error.
Artículos Relacionados
Newsletter Semanal de Java
Cada viernes recibe lo más nuevo del ecosistema Java: frameworks, herramientas y mejores prácticas.
🔒 Sin spam. Cancela cuando quieras.