pessoal, encontrei algumas coisas… que ja me ajudaram
mas ainda tem problemas…
vou reescrever aqui pra ver se alguma alma bem entendida me ajuda…
[b]
se eu tenho um classPath digamos meu C:
quando eu inicio um programa java…
ele inica uma JVM…
o classPath dele pega tudo que tem em C:
se ali no meu do meu codigo… no meio da execução eu copiar um jar de D: para C:
o classLoader nao vai reconhecer esse meu jar certo ?
porque quando a JVM foi startada o classPath dela nao tinha esse jar …
certo ?
a partir dai meu problema começa…
applets podem carregar os jars pra dentro da maquina do cliente…
tenho um applet que precisa de jars que somam uns 8mb …
entao toda vez que o browser eh fechado… e aberto denovo…
abrindo o applet… tem que carregar esses 8mb toda vez…
pensei em armazenar os jars na maquina do cliente… no diretorio JAVA_HOME/LIB/EXT
estando la…
quando o applet eh carregado ele consegue encontrar os jars…
o problema é a primeria execução…
como o applet foi chamado… e uma JVM eh instanciada… e ainda nao tem os jars…
eles acabaram de ser copiados pra maquina…
a JVM nao reconhece eles ainda… so fechando e abrindo denovo…
o que posso fazer é criar uma classe a parte, que caso seja a primeira execução, ou seja. o classLoader n achar as classes que eu quero…
eu executo essa classe a parte…
que ao invez de ter as referencias as classes… eu uso tudo por refleção…
pego as classes com um URLClassLoader… que eu instancio… passando as urls dos jars. na maquina do cliente…
isso é um poooorre alem de ter que fazer reflexção de muitas classes com dependencias dos jars…
ainda por cima uma logica esta dando erro.
um jar de uma API para renderizar e serializar imagens…
Uma classe SerializableRenderedImage usada para serializar meus objetos com as imagens por exemplo scaniadas…
eu pego meu objeto SerializableRenderedImage e jogo num ObjectOutPutStream e mando dou um object.write …
criando um arquivo…
até ai beleza… onde eu instancio o objeto por reflexação e o objectOutput faz a parte dele…
mas quando eu vou ler a merda do arquivo…
dava um erro…
o ObjectImputStream nao conseguia ler meu objeto porque o classLoader nao achava a class(logico como comentado no inicio)
entao sobEscrevi um método da classObjectImputStream onde ele lia a classe…
eu retornei pra ele a mesma instancia de class que eu usei pra escrever o objeto…
só que deu uma exception java.io.InvalidClassException…local class incompatible …
porque o serialId da classe persistida era diferente do serialId da classe que ele tava tentando ler…
eu acho que o problema é que essa classe nao tem definido seu serialId (seja default ou generated) …
talves se tivesse nao aconteceria o erro…nao posso alterar essa classe…
conseguiu intender o problema ?
pode me dar algum tipo de ajuda?[/b]