public static void main(String[] args) – Método principal de Java

Introducción

El método main de Java suele ser el primer método que aprendes cuando empiezas a programar en Java porque es el punto de entrada para ejecutar un programa en Java. El método main puede contener código para ejecutar o llamar a otros métodos, y puede ubicarse en cualquier clase que sea parte de un programa. Los programas más complejos suelen tener una clase que contiene solo el método main. La clase que contiene el método main puede tener cualquier nombre, aunque típicamente puedes simplemente llamar a la clase Main.

En los ejemplos que siguen, la clase que contiene el método main se llama Test:

Test.java
public class Test {

	public static void main(String[] args){

		System.out.println("Hello, World!");
	
	}
}

En este artículo aprenderás qué significa cada componente del método main.

Sintaxis del Método Main de Java

La sintaxis del método main es siempre:

public static void main(String[] args){
	// algún código
}

Solo puedes cambiar el nombre del argumento de matriz String. Por ejemplo, puedes cambiar args a myStringArgs. El argumento de matriz String se puede escribir como String... args o String args[].

público

El modificador de acceso del método main debe ser público para que el JRE pueda acceder y ejecutar este método. Si un método no es público, entonces el acceso está restringido. En el siguiente código de ejemplo, el método main no tiene el modificador de acceso público:

Test.java
public class Test {

	static void main(String[] args){

		System.out.println("Hello, World!");
	
	}
}

Al compilar y ejecutar el programa, ocurre el siguiente error porque el método main no es público y el JRE no puede encontrarlo:

  1. javac Test.java
  2. java Test
Output
Error: Main method not found in class Test, please define the `main` method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application

estático

Cuando el programa Java se inicia, no hay ningún objeto de la clase presente. El método main tiene que ser estático para que la JVM pueda cargar la clase en memoria y llamar al método main sin crear primero una instancia de la clase. En el siguiente código de ejemplo, el método main no tiene el modificador estático:

Test.java
public class Test {

	public void main(String[] args){

		System.out.println("Hello, World!");
	
	}
}

Al compilar y ejecutar el programa, ocurre el siguiente error porque el método main no es estático:

  1. javac Test.java
  2. java Test
Output
Error: Main method is not static in class Test, please define the `main` method as: public static void main(String[] args)

void

Cada método de Java debe proporcionar el tipo de retorno. El tipo de retorno del método Java main es void porque no devuelve nada. Cuando el método main ha terminado de ejecutarse, el programa Java termina, por lo que no es necesario un objeto devuelto. En el siguiente código de ejemplo, el método main intenta devolver algo cuando el tipo de retorno es void:

Test.java
public class Test {

	public static void main(String[] args){
	
		return 0;
	}
}

Cuando compilas el programa, se produce el siguiente error porque Java no espera un valor de retorno cuando el tipo de retorno es void:

  1. javac Test.java
Output
Test.java:5: error: incompatible types: unexpected return value return 0; ^ 1 error

main

El método main de Java siempre se llama main. Cuando un programa Java comienza, siempre busca el método main. El siguiente código de ejemplo muestra un método main renombrado a myMain:

Test.java
public class Test {

	public static void myMain(String[] args){

		System.out.println("Hello, World!");
	}
}

Cuando compiles y ejecutes el programa, se produce el siguiente error porque JRE no puede encontrar el método main en la clase:

  1. javac Test.java
  2. java Test
Output
Error: Main method not found in class Test, please define the `main` method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application

String[] args

El método `main` de Java acepta un solo argumento de tipo array de `String`. Cada cadena en el array es un argumento de línea de comandos. Puedes usar los argumentos de línea de comandos para afectar la operación del programa o para pasar información al programa en tiempo de ejecución. El siguiente código de ejemplo muestra cómo imprimir los argumentos de línea de comandos que ingreses al ejecutar el programa:

Test.java
public class Test {

	public static void main(String[] args){

    	for(String s : args){
		System.out.println(s);
    	}
	
    }
}

Cuando compiles el programa y luego lo ejecutes con unos cuantos argumentos de línea de comandos separados por espacios, los argumentos se imprimirán en la terminal:

  1. javac Test.java
  2. java Test 1 2 3 "Testing the main method"
Output
1 2 3 Testing the main method

Conclusión

En este artículo aprendiste sobre cada componente del método `main` de Java. Continúa tu aprendizaje con más tutoriales de Java.

Source:
https://www.digitalocean.com/community/tutorials/public-static-void-main-string-args-java-main-method