quarta-feira, setembro 05, 2007

Instanciando uma classe que está num .jar

Mais uma dica que pode poupar-lhe algum tempo: suponha que vc tem um .jar, cheio de classes lá dentro e quer usá-las. O que fazer?

Primeiro vc precisa saber o caminho das classes, então digite isso, na pasta do arquivo.jar
$ jar -tvf arquivo.jar
(irá mostrar os caminhos para os .class)
Depois, vá no seu HelloWorld.java (seu código-fonte), e dê um import, tipo esse:
import org.jivesoftware.smack.*;
(coloque o caminho retornado pelo comando anterior, trocando as "/" por ".")
Como nem tudo é perfeito nesse mundo, e vc não pode simplesmente dar include, como quem usa php, então vc deve falar sobre o .jar na hora de compilar e na hora de executar...

Para isso compile, acrescentando o -cp (que sobrepõe o classpath atual)
$ javac -cp ".:arquivo.jar" HelloWorld.java
(neste caso, tudo deve estar na mesma pasta)
E para rodar, faça isso:
$ java -cp ".:arquivo.jar" HelloWorld
Importante notar: na hora do "-cp" não troque o ":" por ";"...vc perderá duas horas com os paths definidos de maneira errada...

Nenhum comentário:

Postar um comentário