Ola pessoal, tokuma duvida aki, por favor quem puder me ajudar da um grito ae…
Vou colocar os passo a passo que fiz para quem puder ir acompanhando e fazendo os testes possa ver o vai acontecendo…
Seguinte:
tenho a estrutura (modo simples):
PASSO (1):
/app3/br/AloMundo.java
/app3/usa/HelloWord.java
/app3/TestaLibs.java
PASSO (2):
O arquivo AloMundo.java (dentro de /app3/br/) tem o seguinte conteúdo:
package br;
public class AloMundo {
public String falaAlo() { return ("Alo Mundo!"); }
public String falaAi() { return ("Fala ae!"); }
public String falaGalera() { return ("Por enquanto eh soh galera!"); }
}
O arquivo HelloWord.java (dentro de /app3/usa/) tem o seguinte conteúdo:
package usa;
public class HelloWorld {
public String sayHello() { return ("Hello World!"); }
public String sayThere() { return ("Hi There!"); }
public String sayGuys() { return ("That´s all guys!"); }
}
PASSO (3):
O arquivo TestaLibs.java (dentro de app3/) tem o seguinte conteúdo:
import usa.HelloWorld;
import br.AloMundo;
class TestaLibs {
public static void main(String[] args) {
// Cria objetos das bibliotecas.
HelloWorld hw = new HelloWorld();
AloMundo am = new AloMundo();
// Chama métodos de hw.
System.out.println(hw.SayHello());
System.out.println(hw.sayThere());
System.out.println(hw.sayGuys());
// Chama métodos de am.
System.out.println(am.falaAlo());
System.out.println(am.falaAi());
System.out.println(am.falaGalera());
}
}// Fim do programa.
PASSO (4):
"Ajeitei" o CLASSPATH com o comando (windows):
C:\app3>set CLASSPATH=%CLASSPATH%;c:\app3
… e compilei com o comando:
C:\app3>javac -verbose TestaLibs.java
[parsing started TestaLibs.java]
[parsing completed 121ms]
[search path for source files: [., c:\app3]]
[search path for class files: [C:\Arquivos de programas\Java\jdk1.5.0_10\jre\lib
\rt.jar, C:\Arquivos de programas\Java\jdk1.5.0_10\jre\lib\jsse.jar, C:\Arquivos
de programas\Java\jdk1.5.0_10\jre\lib\jce.jar, C:\Arquivos de programas\Java\jd
k1.5.0_10\jre\lib\charsets.jar, C:\Arquivos de programas\Java\jdk1.5.0_10\jre\li
b\ext\dnsns.jar, C:\Arquivos de programas\Java\jdk1.5.0_10\jre\lib\ext\localedat
a.jar, C:\Arquivos de programas\Java\jdk1.5.0_10\jre\lib\ext\sunjce_provider.jar
, C:\Arquivos de programas\Java\jdk1.5.0_10\jre\lib\ext\sunpkcs11.jar, ., c:\app
3]]
...
[checking TestaLibs]
[loading .\usa\HelloWorld.class]
[loading .\br\AloMundo.class]
...
[wrote TestaLibs.class]
[total 872ms]
Como vcs podem ver o compilador buscou o diretório onde eu estava mais o c:\app3
depois leu os pacotes em br e usa e depois criou o ByteCode TestaLibs.class
Agora eu testei com o comando:
C:\app3>java TestaLibs
Hello World!
Hi There!
Thats all guys!
Alo Mundo!
Fala ae!
Por enquanto eh soh galera!
Gentem, até aqui ta show e vcs viram que ta funcionando.
E os meus problemas (dúvidas começaram agora… veja…
PASSO (5):
Criei o jar de br com o comando:
C:\app3>jar -vcf br/AloMundo.jar br/AloMundo.class
added manifest
adding: br/AloMundo.class(in = 434) (out= 276)(deflated 36%)
Criei o jar de usa com o comando:
C:\app3>jar -vcf usa/HelloWorld.jar usa/HelloWorld.class
added manifest
adding: usa/HelloWorld.class(in = 432) (out= 274)(deflated 36%)
PASSO (6):
Criei um arquivo Manifest.mf em C:\app3> com o seguinte conteúdo:
Manifest-Version: 1.0
Created-By: 1.5.0_10 (Sun Microsystems Inc.)
Main-Class: TestaLibs
Name: TestaLibs.class
Java-Bean: True
PASSO (7):
Agora refiz a compilação adicionando o CLASSPATH mais os arquivos .jar que foram criados.
Para isso usei o comando:
C:\app3>javac -cp %CLASSPATH%;/app3/br/AloMundo.jar;/app3/usa/HelloWord.jar TestaLibs.java
Se eu executar o comando java TestaLibs funciona perfeitamente, mas não é isso que eu quero.
Agora queremos criar um jar (multiplataforma) então usaremos o comando:
C:\app3>jar -vcfm TestaLibs.jar Manifest.mf TestaLibs.class *.*
added manifest
adding: TestaLibs.class(in = 696) (out= 449)(deflated 35%)
adding: br/(in = 0) (out= 0)(stored 0%)
adding: br/AloMundo.java(in = 227) (out= 131)(deflated 42%)
adding: br/AloMundo.class(in = 434) (out= 276)(deflated 36%)
adding: br/AloMundo.jar(in = 747) (out= 532)(deflated 28%)
adding: Manifest.mf(in = 132) (out= 117)(deflated 11%)
adding: TestaLibs.java(in = 546) (out= 261)(deflated 52%)
adding: TestaLibs.java.bak(in = 530) (out= 259)(deflated 51%)
adding: usa/(in = 0) (out= 0)(stored 0%)
adding: usa/HelloWorld.java(in = 213) (out= 122)(deflated 42%)
adding: usa/HelloWorld.class(in = 432) (out= 274)(deflated 36%)
adding: usa/HelloWorld.jar(in = 751) (out= 531)(deflated 29%)
Ok! Calma lá, o nosso arquivo .jar foir criado, mas com tudo o que tem nessa estrutura como pudemos ver.
Agora executaremos esse arquivo multiplataforma como comando:
C:\app3>java -jar TestaLibs.jar
Hello World!
Hi There!
That¦s all guys!
Alo Mundo!
Fala ae!
Por enquanto eh soh galera!
IIIRAAAA 99% pronto, funcionou do jeito que a gente queria… criar o arquivo multiplataforma.
A minha duvida é que eu so quero os arquivos .class…
Quem puder me (nos) ajudar ganha um doce…
Brigaduuuuuuuuuuuuuuuuu