Introdução
O método main
em Java é geralmente o primeiro método que você aprende ao começar a programar em Java, pois é o ponto de entrada para a execução de um programa Java. O método main
pode conter código para executar ou chamar outros métodos, e pode ser colocado em qualquer classe que faça parte de um programa. Programas mais complexos geralmente têm uma classe que contém apenas o método main
. A classe que contém o método main
pode ter qualquer nome, embora tipicamente você possa simplesmente chamar a classe de Main
.
Nos exemplos a seguir, a classe que contém o método main
é chamada de Teste
:
public class Test {
public static void main(String[] args){
System.out.println("Hello, World!");
}
}
Neste artigo, você aprenderá o que cada componente do método main
significa.
Sintaxe do Método Main em Java
A sintaxe do método main
é sempre:
public static void main(String[] args){
// algum código
}
Você só pode alterar o nome do argumento do array de String
. Por exemplo, você pode alterar args
para meusArgsString
. O argumento do array de String
pode ser escrito como String... args
ou String args[]
.
public
O modificador de acesso do método main
precisa ser public
para que o JRE possa acessar e executar este método. Se um método não for público, o acesso é restrito. No exemplo de código a seguir, o método main
está sem o modificador de acesso public
:
public class Test {
static void main(String[] args){
System.out.println("Hello, World!");
}
}
Ao compilar e executar o programa, ocorre o seguinte erro porque o método main
não é público e o JRE não consegue encontrá-lo:
- javac Test.java
- java Test
OutputError: 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
static
Quando o programa Java inicia, não há um objeto da classe presente. O método main
precisa ser static
para que o JVM possa carregar a classe na memória e chamar o método main
sem criar uma instância da classe primeiro. No exemplo de código a seguir, o método main
está sem o modificador static
:
public class Test {
public void main(String[] args){
System.out.println("Hello, World!");
}
}
Ao compilar e executar o programa, ocorre o seguinte erro porque o método main
não é static
:
- javac Test.java
- java Test
OutputError: Main method is not static in class Test, please define the `main` method as:
public static void main(String[] args)
void
Cada método Java deve fornecer o tipo de retorno. O tipo de retorno do método Java main
é void
porque não retorna nada. Quando o método main
é concluído, o programa Java termina, então não há necessidade de um objeto retornado. No código de exemplo a seguir, o método main
tenta retornar algo quando o tipo de retorno é void
:
public class Test {
public static void main(String[] args){
return 0;
}
}
Quando você compila o programa, ocorre o seguinte erro porque o Java não espera um valor de retorno quando o tipo de retorno é void
:
- javac Test.java
OutputTest.java:5: error: incompatible types: unexpected return value
return 0;
^
1 error
main
O método Java main
é sempre nomeado main
. Quando um programa Java inicia, sempre procura pelo método main
. O código de exemplo a seguir mostra um método main
renomeado para myMain
:
public class Test {
public static void myMain(String[] args){
System.out.println("Hello, World!");
}
}
Ao compilar e executar o programa, ocorre o seguinte erro porque o JRE não consegue encontrar o método main
na classe:
- javac Test.java
- java Test
OutputError: 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
O método main
do Java aceita um único argumento do tipo array de String
. Cada string no array é um argumento de linha de comando. Você pode usar argumentos de linha de comando para afetar o funcionamento do programa ou passar informações para o programa em tempo de execução. O código de exemplo a seguir mostra como imprimir os argumentos de linha de comando que você insere ao executar o programa:
public class Test {
public static void main(String[] args){
for(String s : args){
System.out.println(s);
}
}
}
Quando você compila o programa e então o executa com alguns argumentos de linha de comando separados por espaços, os argumentos são impressos no terminal:
- javac Test.java
- java Test 1 2 3 "Testing the main method"
Output1
2
3
Testing the main method
Conclusão
Neste artigo, você aprendeu sobre cada componente do método main
do Java. Continue sua aprendizagem com mais tutoriais de Java.