Java main method: el punto de inicio y fin de todos los programas Java
El Java main()
method o método main en Java es el punto de inicio y fin de todo programa en Java. Durante la ejecución solo se tienen en cuenta las sentencias que están dentro de su ámbito. Por eso es tan importante que la sintaxis del método se respete hasta el más mínimo detalle al crear el código. Si es incorrecta, el programa no se ejecutará.
¿Qué es el método main()
en Java?
Independientemente del proyecto que quieras realizar con este lenguaje de programación y del código conciso o extenso que utilices para ello, en Java, toda aplicación comienza con el método main. Si este no está disponible, el código no puede ejecutarse. Antes de pasar a main()
, primero se carga la máquina virtual Java (JVM) en la memoria y se compila el código. Una vez completados estos pasos, el código se pasa al método main()
de Java para su comprobación y debería ejecutarse correctamente. En principio, también es posible utilizar varios de estos métodos, aunque el máximo es un método main por clase.
- Rápido, seguro, flexible y escalable
- Seguro con SSL y protección DDoS
- Dominio y asesor personal incluidos
La sintaxis del método main()
en Java
La sintaxis del método main en Java es siempre la misma y consta de varias partes importantes. Este es su aspecto:
public static void main(String[] args)
javaEstos componentes cumplen las siguientes funciones:
- public: garantiza que también se puede acceder a una clase desde fuera.
- static: declara el método como estático. Esto significa que puede existir sin que se haya creado previamente un objeto de una clase específica.
- void: asegura que el método main no tiene que devolver un valor.
- main: es el nombre con el que la máquina virtual Java puede identificar el método en cuanto ejecuta un programa.
- String[] args: es un array en el que se almacenan y reciben los argumentos de la línea de comandos.
Los distintos componentes y sus ventajas
Para entender mejor cómo funciona el método main en Java y por qué todos sus componentes son tan importantes, volveremos a repasarlos individualmente en las secciones que aparecen a continuación. En particular, mostraremos qué ocurre si falta parte de la firma. Para ello, elegiremos un ejemplo de código muy sencillo, que mostraremos con el comando Java System.out.println
. Se vería así:
public class main {
public static void main(String[] args) {
System.out.println("Texto de ejemplo.");
}
}
bashSi ejecutas este código, obtendrás el siguiente resultado:
Texto de ejemplo.
bashpublic
public actúa como especificador de acceso y señala a la máquina virtual Java dónde se ejecuta el programa correspondiente. Existen otros modificadores de acceso como default, private o protected. Sin embargo, si los utilizas dentro del método main, recibirás un mensaje de error:
public class main {
private static void main(String[] args) {
System.out.println("Texto de ejemplo.");
}
}
bashEl resultado correspondiente es:
Error: Main method not found in class, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
bashEste mensaje de error indica que no hay acceso público al método.
static
El hecho de que el método utilizado sea estático queda confirmado por la palabra clave “static”. Por lo tanto, también se puede utilizar independientemente de cualquier instancia de clase creada. Si se elimina la declaración como “static”, el código queda así:
public class main {
public void main(String[] args) {
System.out.println("Texto de ejemplo.");
}
}
bashEn este caso, también recibirás un mensaje de error en lugar del resultado deseado:
Error: Main method is not static in class test, please define the main method as:
public static void main(String[] args)
bashvoid
“Void” es una palabra que especifica que el método main no debe devolver ningún valor. Como main()
es el punto de inicio y fin de un programa en Java, no sería necesario devolver ningún valor. Este es el aspecto que tendría el código sin “void”:
public class main {
public static main(String[] args) {
System.out.println("Texto de ejemplo.");
}
}
bashEste es el mensaje de error que provoca la omisión de la palabra clave:
Error: Main method must return a value of type void in class Main, please define the main method as:
public static void main(String[] args)
bashmain
Para cada programa en Java, la JVM busca primero el llamado identificador “main”. Este indica dónde debe comenzar y terminar la ejecución. En cuanto finaliza el método main, también finaliza la salida. Por lo tanto, esta firma no debe modificarse ni añadirse nunca. Si hacemos esto en nuestro ejemplo, el código queda así:
public class main {
public static void ersatzMain(String[] args) {
System.out.println("Texto de ejemplo.");
}
}
bashComo la JVM no puede encontrar el identificador, terminará el programa directamente y solo emitirá el siguiente mensaje de error:
Error: Main method not found in class, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
bashString[] args
El array String[] args
corresponde a la clase java.lang.String y contiene datos que almacena como valores de cadena. Si omites esta especificación, el código cambia:
public class main {
public static void main() {
System.out.println("Texto de ejemplo.");
}
}
bashSin el argumento, el Java main method no puede ejecutarse y volverás a recibir el siguiente mensaje de error:
Error: Main method not found in class, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
bashOrtografías alternativas
El ejemplo de código que se muestra aquí se ha escrito siguiendo la sintaxis más habitual. Sin embargo, puedes adaptarlo fácilmente si quieres una mejor visión general. Por ejemplo, es posible colocar los corchetes directamente después de “args”. Quedaría así:
public static void main(String args[]) { }
javaTambién puedes almacenar argumentos como “varargs”, es decir, listas de argumentos variables:
public static void main(String…args) { }
javaEn nuestra Digital Guide encontrarás otros muchos artículos sobre Java. Por ejemplo, hemos hecho una comparación de Java y JavaScript y reunido los operadores Java más importantes.