Descrição
Este documento pretende demonstrar como é possível escrever um simples programas em Java sem a necessidade de uso de uma IDE e a criação de todo um projeto. O que pode ser muito útil pra execução de um rápido exemplo ou no caso de uma IDE de Java não estar disponível no sistema. Este tutorial foi inspirado em uma resposta dada no Stack Overflow {1}.
Ambiente
Você deve ter instalado no seu sistema o JDK
(Java Developer Kit), sendo que esse tutorial foi testado através da jdk8-openjdk
no Linux.
Além disso, os binários java
, jar
e javac
devem estar presentes através da variável de ambiente PATH
, onde a configuração disso pode variar pra cada sistema operacional. Tutorias na internet podem ser encontrados facilmente sobre como fazer isso no Linux {2} e Windows {3}.
Compilação
Primeiramente você precisa escrever uma classe de exemplo.
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!") } }
- Salve este arquivo como:
HelloWorld.java
. - Compile com:
javac HelloWorld.java
.
Isso irá criar um arquivo intermediário chamado HelloWorld.class
no mesmo diretório que foi chamado o comando anterior. A seguir é demonstrado uma sequência de passos feitas em um terminal Linux [1].
$ cat > HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world!")
}
}
$ javac HelloWorld.java
$ ls
HelloWorld.java HelloWorld.class
[1]: $
é apenas um carácter do terminal que indica o tipo de usuário que está logado (nesse caso um usuário normal). Para forçar a saída do comando cat
pressione Ctrl-D
pra emitir um EOF
(End of File).
Execução
A execução pode ser feita de uma maneira simples: java HelloWorld
.
> java HelloWorld Hello world!
Embora isso pareça estranho, pois não há nenhum arquivo HelloWorld
no seu diretório, o programa java
espera que seja passado o nome da classe a ser executado e não o arquivo HelloWorld.class
.
Se você ingenuamente chamar java HelloWorld.class
um erro será retornado:
> java HelloWorld.class Error: Could not find or load main class HelloWorld.class
Geração e execução de arquivos .jar
Para criar um bytecode .jar
que possa ser distribuído livremente, você tem duas alternativas: escrever um arquivo MANIFEST.mf
especificando a classe Main ou passando o nome da classe Main para a linha de comando. Para criar um arquivo .jar
você deve previamente já ter passado pelo processo de compilação explicado na seção Compilação, pois será necessário os arquivos .class
.
Estarei exemplificando aqui os dois modos. Ambos no final irão gerar um arquivo HelloWorld.jar
.
Definir classe principal através do arquivo MANIFEST.mf
- Crie um arquivo
MANIFEST.mf
com apenas a linhaMain-Class: HelloWorld
- Execute:
jar -cvfm HelloWorld.jar MANIFEST.mf HelloWorld.class
Definir classe principal como argumento
- Execute:
jar -cvfe HelloWorld.jar HelloWorld HelloWorld.class
Execução arquivo .jar
Para executar o arquivo .jar
gerado execute.
$ java -jar HelloWorld.jar Hello world!
Referências
- Stack Overflow, How do I run a Java program from the command line on Windows, acesso em 17 de agosto de 2017.
- Viva o Linux, Configurando JDK no PATH no Linux qualquer distro, acesso em 17 de agosto de 2017.
- Java at Point, How to set path in java, acesso em 17 de agosto de 2017.