Uma duvida com classes java

7 respostas
jonasjgs2

bom dia amigos…
eu hoje tenho uma situacao que e a seguinte:
imaginem um projeto que tenha varias opcoes swings…

cadastro de fornecedores
cadastro de produtos
cadastro de clientes
etc…

cada uma destas opcoes e uma classe java…
hoje cria-se um .jar e baixa-se este .jar no cliente quando tem alguma alteracao por ex: no cadastro de fornecedores… eu tenho que baixar o .jar inteiro no cliente…
imaginem o caso de um projeto que tenha ai umas 100 opcoes… que isso hoje no meu caso e um fato consumado…

haveria alguma maneira de se atualizar apenas o cadastro de produtos sem ter que baixar o .jar completo?

ou alguma outra maneira de se trabalhar, ou seja, em vez de se baixar o .jar baixar apenas a classe que sofresse alguma alteracao?

7 Respostas

R

Quando vc fala que baixa o jar no cliente,o que seria isso tecnicamente falando?

pdpbom

entendi oque vc ta falando tambem tenho essa duvida … + acredito q eu somente baixando o jar msm …

Explicando um pouco:

exemplo projetos usando php (gente eu sei que php é interpretado e não compilado conheço as diferenças) … cada componente é independente caso seja preciso fazer uma atualização em um form, apenas atualizo um arquivos para o servidor.

sei que o jar é um “zip” (nossa) … que contem as classes compiladas, sei que compilando as classes local e fazendo o charque de no cliente abrir o jar, e sobrepor o arquivo da classe funciona… a

duvida é se tem algum jeito menos trabalhoso de fazer isso …

E

Hoje em dia, a menos que você tenha problemas com Internet muito lenta, ou o tráfego de dados sair muito caro (por exemplo, atualização de programas via 3G ou GPRS ou EDGE), não recomendaria fazer atualização parcial de software. Você cria muitos mais problemas que os resolve.

Se você realmente tiver problemas com Internet muito lenta, precisa procurar algum esquema de atualização incremental (isso não é trivial fazer, até porque o Windows, onde normalmente seus programas devem rodar, costuma deixar arquivos “presos” durante a execução, impossibilitando a atualização de forma automática - você sempre precisa de um outro programa para fazer a atualização, e você sempre precisa de derrubar o programa principal para poder atualizá-lo. ).
Esses esquemas sempre têm algum detalhe complicado.
Só para você ter uma idéia, o Eclipse, que tem um esquema de atualização incremental dos plugins, não faz isso muito “automaticamente” e você sempre tem de reiniciar o Eclipse para fazer a atualização.

jonasjgs2

entanglement,
eu sei dos detalhes e dificuldades…
porem vamos imaginar o seguinte:

se eu posso compilcar uma classe isoladamente
e ate executar ela atravar do java … … …
porque eu tenho que baixar o .jar inteiro…
deve haver alguma maneira de deixar de baixar .jar
e baixar as classes necessarias para rodar a aplicacao…

isso melhoraria o suporte a cliente enormemente…
imagina o seguinte:

dentro de uma empresa tem varios setores e tem a aplicacao de cadastro de clientes no projeto…

se eu precisar dar uma manutencao no cadastro de clientes mesmo que eu faca meus testes fora do ambiente
e necessario que eu pare apenas o funcionario que faca cadastro de clientes e eu baixe apenas a classe de cadastro de clientes para que ele faca os testes…
o restante da empersa inteira esta trabalhando…
entendeu?

R

A Unica forma que vejo é se a aplicacao é montada por um SVN, dai voce pega so as atualizacoes e executa, fora isso, nao consigo imaginar e nem conheco outra forma de fazer uma atualizacao em um JAR dessa forma. Ate mesmo porque no minimo voce precisara descompactar o jar, decompilar o .class, e inserir as mudanças. Se alguem conhecer algo desse tipo favor informar.

E

jonasjgs2:
se eu precisar dar uma manutencao no cadastro de clientes mesmo que eu faca meus testes fora do ambiente
e necessario que eu pare apenas o funcionario que faca cadastro de clientes e eu baixe apenas a classe de cadastro de clientes para que ele faca os testes…
o restante da empersa inteira esta trabalhando…
entendeu?

Uma forma bem boba de resolver esse problema é quebrar seu programa em vários JARs. Aí você só atualiza o JAR adequado. Entretanto, eu aviso que isso pode dar uma confusão dos infernos (por exemplo, se os outros JARs estiverem com versões incompatíveis com o JAR que você está atualizando, vai dar um monte de problemas que são difíceis de resolver.

Se você não tem um controle eficiente de versionamento, prepare-se para ter muitas dores de cabeça.

Eu acho que ter um JAR só para a sua aplicação dá bem menos dor de cabeça.

Mesmo que você tenha N jars para sua aplicação, eu recomendo que todos sejam recompilados a cada versão nova que você for lançar (mesmo que no fim das contas apenas um dos JARs acabe ficando diferente do anterior. É que pode haver alguma dependência de algum outro módulo que pode dar problemas.

R

Pensei em algo desse tipo tambem,um listener ‘escutando’ o SVN e de alguma forma sabendo que um arquivo foi atualizado.

Mas como já foi dito,eu também acho que é muito trabalho pra pouco retorno.

Criado 17 de outubro de 2012
Ultima resposta 17 de out. de 2012
Respostas 7
Participantes 5