Programa Java Hello World
Escreva, compile e execute seu primeiro programa Java — o clássico Hello World — e entenda cada parte do arquivo-fonte.
Todo tutorial de linguagem de programação começa com o mesmo ritual: um pequeno programa que imprime Hello, World!. A versão Java tem mais código boilerplate do que a maioria das linguagens, mas cada parte desse boilerplate é algo que você verá novamente. Este capítulo analisa o programa linha por linha e mostra como compilar e executá-lo.
Esta página assume que você já tem um JDK instalado; caso contrário, siga primeiro o guia Como Instalar o Java.
Você pode editar o exemplo abaixo e pressionar Run — ele realmente compila e executa no servidor:
O programa completo
Aqui está o arquivo-fonte completo. Por convenção, ele seria salvo como HelloWorld.java — o Java exige que o nome do arquivo corresponda ao nome da classe pública.
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}Analisando linha por linha
public class HelloWorld
Todo programa Java vive dentro de uma classe. Uma classe é um modelo que agrupa dados e comportamentos — a pedra angular da programação orientada a objetos. Aqui a classe se chama HelloWorld, e a palavra-chave public significa que ela é visível a partir de qualquer outra classe.
A convenção é que os nomes de classes usam UpperCamelCase: HelloWorld, BankAccount, Order.
public static void main(String[] args)
Este é o ponto de entrada do programa — o método que a JVM chama quando você executa seu código. A assinatura é precisa: altere qualquer parte dela e a JVM não a encontrará.
public— a JVM precisa chamá-lo de fora da classe.static— pode ser chamado sem criar uma instância deHelloWorldprimeiro.void— não retorna um valor.main— o nome especial que a JVM procura.String[] args— um array de argumentos de linha de comando passados quando o programa inicia. Você pode nomeá-lo como quiser (argsé convencional).
System.out.println("Hello, World!");
System é uma classe da biblioteca padrão; out é um campo estático nela que contém o fluxo de saída padrão; println é um método nesse fluxo que imprime seu argumento seguido de uma nova linha.
"Hello, World!" é um literal de string — uma sequência de caracteres entre aspas duplas. Strings são fundamentais no Java; quando você estiver confortável aqui, Java Strings aborda o que você pode fazer com elas.
Todo statement Java termina com ponto e vírgula (;). O compilador reclamará se você esquecer um. Para as regras mais amplas — espaços em branco, chaves, identificadores — veja Java Syntax.
Compilar e executar pelo terminal
Se você tem o JDK no seu PATH (veja os dois capítulos anteriores), pode compilar e executar a partir de qualquer terminal:
# Save the source as HelloWorld.java, then:
javac HelloWorld.java # compiles to HelloWorld.class
java HelloWorld # runs the bytecodeSaída:
Hello, World!Observe que você passa HelloWorld para java, não HelloWorld.class ou HelloWorld.java. O lançador java recebe o nome de classe totalmente qualificado e encontra o arquivo .class correspondente no classpath.
Experimente uma variação
Edite o exemplo executável para imprimir outra coisa — seu nome, o ano atual, uma mensagem de várias linhas — e pressione Run. Algumas ideias:
System.out.println("Hello from Java " + System.getProperty("java.version"));System.out.println("Line 1");
System.out.println("Line 2");System.out.printf("%s is %d years old%n", "Ada", 36);Os dois últimos métodos para conhecer:
println— imprime seu argumento e uma nova linha.print— comoprintln, mas sem a nova linha no final.printf— formatação no estilo printf, como em C.%sinsere uma string,%dum número inteiro e%numa nova linha apropriada para a plataforma. Veja Java String Formatting para o conjunto completo de especificadores de formato.
Erros comuns de iniciantes
Algumas coisas que pegam os novatos de surpresa:
- Incompatibilidade de nome de arquivo. Uma
public class HelloWorlddeve estar em um arquivo chamadoHelloWorld.java. Caso contrário, ojavacretornará um erro. - Ponto e vírgula ausente. Todo statement precisa de um. As mensagens de erro do compilador geralmente são claras sobre qual linha.
Printlnvsprintln. Java diferencia maiúsculas de minúsculas.- Aspas especiais. Copiar código de um site que "gentilmente" converteu
"em"produzirá um erro de compilador desconcertante.
O que vem a seguir
Como Compilar e Executar um Programa Java aprofunda o que javac e o lançador java realmente fazem, incluindo o classpath, pacotes e o uso do jshell para experimentos rápidos sem um programa completo. Para comentar seu código à medida que ele cresce, veja Java Comments.