Java sem nutela no Ubuntu – Parte 2
Neste segundo artigo, Java sem nutela, vamos explicar como desenvolver uma aplicação na mão, sem IDE.
No primeiro artigo, expliquei como gerar um hello world, sem nada.
GIT
https://github.com/marcelomaurin/Java-Hello-World
Neste segundo artigo iremos incluir um arquivo de biblioteca JAR alem de explicar o conceito do JAR.
O JAR na verdade é um pacote contendo vários arquivos java, alem de outras informações referentes a criação de um pacote.
Usando um JAR
Primeiro irei explicar como usar o JAR.
O Arquivo JAR deve estar localizado em uma pasta onde os .JAR sejam encontrados, de forma geral, o linux ou qualquer outro sistema operacional, precisa visualizar a variável CLASSPATH
Para isso, iremos alterar o Makefile, incluindo o caminho da nossa lib
JCC=javac
SOURCE= \
hello.java
TARGET= HelloWorld
PATHLIB=$CLASSPATH:/~/Java-Hello-World/libs
DEBUG= -g
all: compile run
lib:
export CLASSPATH=$(PATHLIB)
compile:
$(JCC) $(DEBUG) $(SOURCE)
run:
java $(TARGET)
A lib só deve ser chamada um unica vez podendo ser incluída nos scripts de inicialização.
make lib
Pronto agora é só incluir seu jar na pasta que vc definiu no script e importar ele no seu código.
Criando seu JAR
A criação do JAR é bem simples, parte do meu artigo foi baseado no git https://github.com/macagua/example.java.helloworld
Meu GIT
https://github.com/marcelomaurin/hello-java
Nele podemos ver o Makefile
JCC=javac
SOURCE= \
./HelloWorld/Hello.java
TARGET= HelloWorld
CLASS=Hello
DEBUG= -g
all: compile run
compile:
$(JCC) $(DEBUG) $(SOURCE)
jar:
jar cfm $(CLASS).jar Manifest.txt $(TARGET)/$(CLASS).class
run:
java -cp . $(TARGET).$(CLASS)
runjar:
java -jar $(CLASS).jar
São dois pontos importantes para discusão.
A criação do jar pelo comando:
jar cfm $(CLASS).jar Manifest.txt $(TARGET)/$(CLASS).class
O jar é o pacote responsável pela criação dos pacotes jar.
No exemplo seguinte, vemos o pacote executado
java -jar $(CLASS).jar
onde o comando testa o pacote.
Criação do Manifest.txt, é o arquivo responsável por dizer o que é.
Manifest-version: 1.0
Created-By: 1.0 (Maurinsoft)
Main-Class: HelloWorld.Hello
Nele encontramos apenas a descrição da classe que será criada (MAIN-CLASS)
Por ultimo os fontes Hello.java
package HelloWorld;
// Meu primeiro programa
class Hello {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Verificamos neste artigo, que o empacotamento, de fato é uma atividade bem simples e fácil de ser realizada manualmente.