Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sr.Rodrigo

Distribuir Aplicação

Recommended Posts

Bom dia pessoal,

 

Estou com um problema que talvez seja fácil de se resolver, porém, como sou iniciante em java estou tendo muitas dificuldades.

 

Quero distribuir a aplicação para o 'cliente'.

 

Criei um projeto no eclipse com a seguinte estrutura:

 

 

 

projeto

|

->src[contém a classe man]

|

|->H2[banco de Dados]

|

|->images[imagens/icones da aplicação]

|

|->lib[jar do H2, Jar biblioteca serial rxtx]

|

|->messages[mensagens para internacionalização]

 

 

 

1º O que eu entendi consultando pela net é que devo criar uma arquivo .jar para rodar no meu cliente sem ter a IDE do Eclipse. É isso mesmo?

 

2º O que vou ter que ter na máquina cliente? É a JRE? Como faço para simplificar a instalação disso no meu 'cliente' ?

 

3º Dentro da pasta 'messages' na estrutura do meu projeto tenho os arquivos responsáveis pela internacionalização ( message.pt_Br.properties, etc ]. Eu gostaria de poder acrescentar mais aqrquivos sem ter que gerar o arquivo .jar. Porém, quando eu gero o arquivo .jar, tudo fica dentro do mesmo, inclusive a pasta 'messages'.Apenas o banco de dados tem uma pasta criada à parte assim que inicio a aplicação pelo .jar.

 

 

projeto.jar [ Aqui fica tudo do meu projeto, inclusive imagens e mensagens ]

H2

 

#########

 

 

Bom, resumindo, gostaria de uma orientação de como fazer a distribuição da aplicação java quando se usa banco de dados, imagens, mensagens. Sendo que, imagens e mensagens quero ter liberdade para poder adicionar conforme necessidade sem ter que gerar o arquivo .jar novamente.

 

Gente, é isso, não sei se consegui expressar minhas dúvidas, ou se fiz da melhor forma.

 

Aceito sugestões inclusive para criar melhor as perguntas.

 

Obrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Respondendo a suas perguntas...

 

1) SIM

2) SIM! Não tem como, tem que instalar a JRE via instalador.

3) Esse é o mais complicado já que o jar é um pacote ou digamos um zip, onde se encontra todo o seu projeto. o que você pode fazer é criar uma pasta onde você pode adicionar as imagens e traduções e você via aplicação poder pegar elas lá. por exemplo:

 

sua aplicação ficar quando instalada em /home/app/ e dentro dela ter um diretorio para imagens e outro pra tradução e sua aplicação pegar o patch absoluto delas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá FOX...

 

Desde já agradeço pela ajuda!

 

Mas como eu faço para minha classe que usa o

 

 

rb=ResourceBundle.getBundle("messages",loc);

 

 

meus properties estão no diretório scr da estrutura do que o eclipse criou, quando eu coloco os properties na minha pasta messages a aplicação não encontra os arquivos. Como eu digo ao ResourceBundle.getBundle para ele pegar/procurar meus properties em outra pasta que não seja essa do src?

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente escrever o classloader customizado para ler os properties onde você quiser ou ainda coloque o diretório com os properties no classpath.

 

da uma olhadinha aqui tb http://java.sun.com/j2se/1.4.2/docs/api/java/util/PropertyResourceBundle.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Fox

 

O problema de colocar a pasta das properties no classpath, se é que eu tô fazendo certo, não permite eu alterar o conteúdo da mesma em runtime, não é isso?

 

Pois ao gerar o .jar vai ficar tudo lá dentro, não é?

 

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é verdade... por que vocÇe não distribui sem ser um jar!?

coloca só os class, que roda também... se o problema é não exibir o código fonte ao cliente..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fox,

 

Me desculpe a ignorância, mas como eu faço isso?

 

Tem alguma ajuda pelo eclipse?

 

 

Supondo que eu disponibilize toda a aplicação dentro de uma pasta chamada, por exemplo: ProjetoFinal

 

Se eu colocar só os .class, como vou iniciar a aplicação dentro da pasta ProjetoFinal?

 

Obs: sou iniciante em Java!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

execute o class assim em linha de comando:

 

java Cliente.class

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá FOX,

 

Tentei o que disse, olha o resultado

 

 

Exception in thread "main" java.lang.NoClassDefFoundError: Comunicador/class

Caused by: java.lang.ClassNotFoundException: Comunicador.class

at java.net.URLClassLoader$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClassInternal(Unknown Source)

Could not find the main class: Comunicador.class. Program will exit.

 

 

O que poderia ser?

 

 

Obrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o próprio erro já diz java.lang.ClassNotFoundException veja se existe a classe Comunicador.class em algum lugar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o próprio erro já diz java.lang.ClassNotFoundException veja se existe a classe Comunicador.class em algum lugar...

 

 

Sim, ela existe...

 

É onde tem o método man...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao criar o Runnable .jar no Eclipse você pode checkar a opção p separar as dependencias do executavel, ou seja, basicamente ele cria o arquivo .jar contendo o Entry Point(que é a classe q possui o main) do aplicativo e mantem a estrutura, o problema talvez é que assim será nessário você carregar sempre as outras pastas, mas isso seria o ideal.

 

O que você sempre pode fazer é criar um Setup, use o http://www.advancedinstaller.com/, tem uma versão Free e é mto simples de usar, a dias fiz uma aplicação usando ele, se tiver duvidas p usar diz aí..

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.