Java sem nutela no Ubuntu – Parte 2
19 de junho de 2022Neste 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.