Java sem nutela no Ubuntu – Parte 2

19 de junho de 2022 Off Por Marcelo Martins

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 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.