A JVM não pode executar diretamente o código que você escreve. Ele só sabe executar programas escritos em bytecode. Bytecode é uma linguagem de baixo nível que se aproxima do código de máquina.
Para Java, a compilação é a tradução de um programa (de alto nível) escrito em Java para o mesmo programa escrito em bytecode.
Seu código é passado em um arquivo .java para o compilador. Se o compilador não encontrar erros no código, você receberá um novo arquivo de bytecode. Este arquivo terá o mesmo nome, mas uma extensão diferente: .class . Se houver erros no código, o compilador informará "o programa não compilou". Então você precisa ler cada mensagem de erro e corrigir os erros.
Você usa o comando javac para invocar o compilador, que faz parte do JDK (Java Development Kit). Isso significa que se você instalar apenas o JRE (Java Runtime Environment), não terá o compilador! Você terá apenas a JVM, que só pode executar bytecode. Assim, instalamos o JDK e passamos nosso arquivo .java para o compilador.
Por exemplo, vamos pegar um programa simples com alguma saída de console:
class MySolution {
public static void main(String[] args) {
System.out.println("Hi, command line!");
}
}
Vamos salvar este código no arquivo D:/temp/MySolution.java .
Vamos compilar nosso código usando o comando
D:\temp>javac MySolution.java
Se não houver erros de compilação no código, um arquivo MySolution.class aparecerá na pasta temporária . Além do mais, o arquivo MySolution.java contendo seu código não vai a lugar nenhum. Permanece exatamente onde estava. Mas agora MySolution.class contém bytecode e está pronto para ser executado diretamente pela JVM.
Nosso exemplo é o mais simples possível, mas mesmo os projetos maiores e mais complexos usam o comando javac . Então será muito útil para você saber como funciona.
Você pode compilar mais de uma classe por vez. Por exemplo, suponha que haja outro arquivo Cat.java na pasta temporária :
D:\temp>javac MySolution.java Cat.java
ou isto:
D:\temp>javac *.java
Depois de compilados, os arquivos .class podem ser compactados em um arquivo jar , que pode ser convenientemente movido para diferentes computadores e executado neles. Aqui está um exemplo de como criar um arquivo jar :
D:\temp>jar cvfe myjar.jar MySolution MySolution.class Cat.class
onde:
-
jar é o comando para criar arquivos .jar , incluso no JDK
-
cvfe são opções de linha de comando com os seguintes significados:
-
c – cria um novo arquivo jar
-
v – exibir informações detalhadas
-
f – indica que queremos que a saída da ferramenta seja colocada em um arquivo ( myjar.jar )
-
e – indica o ponto de entrada ( MySolution ), ou seja, a classe que contém o método principal
-
-
MySolution.java Cat.class – nomes separados por espaço dos arquivos que serão compactados no arquivo jar .
Veja como executamos o arquivo jar resultante:
D:\temp>java -jar myjar.jar
Para informações mais detalhadas: |
---|
As ferramentas javac e jar possuem ajuda integrada. Para exibi-lo, execute o seguinte na linha de comando:
|
GO TO FULL VERSION