W3docs

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:

java— editable, runs on the server

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 de HelloWorld primeiro.
  • 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 bytecode

Saí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 — como println, mas sem a nova linha no final.
  • printf — formatação no estilo printf, como em C. %s insere uma string, %d um número inteiro e %n uma 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 HelloWorld deve estar em um arquivo chamado HelloWorld.java. Caso contrário, o javac retornará 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.
  • Println vs println. 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.

Prática

Prática
Qual assinatura é o ponto de entrada correto para um programa Java?
Qual assinatura é o ponto de entrada correto para um programa Java?
Was this page helpful?