| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 00:18:14
|
venomtotal
Java Ninja
![[Avatar]](/images/avatar/17ab7b5bb7ca18f6d5f33dfbcbaee1a2.jpg)
Membro desde: 24/04/2006 00:09:57
Mensagens: 298
Offline
|
Estou fazendo uma aplicação swing para conectar-se numa base de dados. Nela o usuário passará as informações de conexão como: ip, usuario, senha e etc...
Também haverá a opção de através de um filechooser, ele possa apontar onde está o arquivo jar do driver jdbc. A minha dúvida é como fazer para carregar este arquivo jar em tempo de execução.
Num projeto normalzinho, onde sei qual o banco e versao do driver que o usuário usará, é muito fácil, pois basta vincular o arquivo jar através da IDE.
Mas em tempo de execução?
Agradeço qualquer ajuda.
venom
This message was edited 2 times. Last update was at 10/01/2008 00:20:55
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 00:36:32
|
rafaelglauber
GUJ Master
![[Avatar]](/images/avatar/e9abec5e32203998211653b45023be1c.jpeg)
Membro desde: 07/09/2007 23:05:20
Mensagens: 1065
Localização: Feira de Santana
Offline
|
Provalmente terá que limitar a alguns banco de dados, por exemplo, a url do oracle é diferente a montagem para o banco firebird por exemplo, terá que além de carregar o jar ainda perguntar a qual banco se destina para montar a url. Com relação a esse "carregamento", acredito que se vc sempre copiar os arquivos para o seu ClassPath não terá problemas em fazer o Load dinamicamente.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 01:17:18
|
venomtotal
Java Ninja
![[Avatar]](/images/avatar/17ab7b5bb7ca18f6d5f33dfbcbaee1a2.jpg)
Membro desde: 24/04/2006 00:09:57
Mensagens: 298
Offline
|
rafaelglauber wrote:Provalmente terá que limitar a alguns banco de dados, por exemplo, a url do oracle é diferente a montagem para o banco firebird por exemplo, terá que além de carregar o jar ainda perguntar a qual banco se destina para montar a url. Com relação a esse "carregamento", acredito que se vc sempre copiar os arquivos para o seu ClassPath não terá problemas em fazer o Load dinamicamente.
hmm. Tinha esquecido de dizer, o usuário irá passar a string do banco correspondente, mas referente ao carregamento e classpath.
Se eu estiver falando besteira me corrija(sou novato), mas como vou alterar o classpath enquanto a aplicação tiver rodando? Tem algum comando ou variavel interna do java que faça isso? Pergunto, porque pesquisei a sua sugestao e so vi configuração do classpath manualmente: http://www.guj.com.br/java.artigo.108.1.guj
Na teoria o bom seria neste projeto ter algo assim:
-------------------------------------------------------
//variavel que aponta o local do arquivo jar. O valor será obtido através do JFileChooser
String localDoArquivo;
ClassPath = localDoArquivo;
-----------------------------------------------------
Agradeço qualquer ajuda
VENOM
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 01:26:39
|
venomtotal
Java Ninja
![[Avatar]](/images/avatar/17ab7b5bb7ca18f6d5f33dfbcbaee1a2.jpg)
Membro desde: 24/04/2006 00:09:57
Mensagens: 298
Offline
|
Ah, desculpa, a resposta saiu incompleta:
Na verdade, eu percebi as duas maneiras de fazer isso:
01-Alterar o ClassPath, adicionando o caminho do arquivo jar nele.
02-o que você sugeriu, copiar o arquivo jar pra algum dos diretórios contidos no ClassPath.
De qualquer forma, eu precisso ler e escrever o conteudo no ClassPAth. Como fazer isso?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 02:03:47
|
kaique
GUJ Ranger
![[Avatar]](/images/avatar/60bb8062ea8e0c7ff17bb2e484cd223a.png)
Membro desde: 10/04/2006 07:06:06
Mensagens: 911
Localização: Fortaleza-CE
Offline
|
Cara, não sei se minha dica irá te ajudar muito para resolver seu problema, mas dá uma pesquisada sobre ClassLoaders em Java...
Aqui no GUJ tem um artigo que fala sobre isso. Acho que ele pode te dar uma noção da sua funcionalidade. Aí você vê se ajuda...
Aqui vai o link para a classe na API do Java:
http://java.sun.com/javase/6/docs/api/java/lang/ClassLoader.html
[]'s.
|
/**
*
* Carlos Henrique
* carlosce@gmail.com
* kaiquece@hotmail.com
*
* Sun Certified Programmer for the Java 2 Platform, SE 5.0
* Sun Certified Web Component Developer for J2EE 1.4
* Sun Certified Bussiness Component Developer for J2EE 1.3
*
*/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 08:25:52
|
falvesti
JavaBaby
![[Avatar]](/images/avatar/d467193baadf3ec5f1d18d0757525712.jpg)
Membro desde: 17/10/2007 06:57:33
Mensagens: 90
Localização: São Paulo - SP
Offline
|
Cara quando fiz meu TCC passei pelo mesmo probelma. Pelo que entendi vc precisa instanciar um jar no classpath em tempo de execução, correto?
Não lembro de kbça como faz mas tenho em casa no código fonte do meu TCC. Hoje anoite te passo.
Abraço
|
Fernando da Cunha Alves
Consultor Java
falvesti@gmail.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 08:37:03
|
falvesti
JavaBaby
![[Avatar]](/images/avatar/d467193baadf3ec5f1d18d0757525712.jpg)
Membro desde: 17/10/2007 06:57:33
Mensagens: 90
Localização: São Paulo - SP
Offline
|
Boa notícia!!! Achei o código aki no trampo. Segue:
Abraço!
|
Fernando da Cunha Alves
Consultor Java
falvesti@gmail.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 08:38:08
|
plic_ploc
JavaChild
Membro desde: 11/06/2006 18:55:12
Mensagens: 137
Localização: Ibitinga - SP
Offline
|
isso resolve seu problema
|
Java MVC - Brutos framework
Faça o download de um WebChat feito usando o Brutos MVC |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 10:21:28
|
Gobain
JavaTeenager
![[Avatar]](/images/avatar/80cd71aee683e52c643ad59a03524806.png)
Membro desde: 27/06/2007 13:10:28
Mensagens: 176
Localização: Curitiba
Offline
|
Então, eu fiz um programinha na faculdade pra mexer com BD q carregava o jar em tempo de execução.
Tem um porém na hr de carregar o driver q eu não consegui encontrar explicação alguma, mas funcionou... Talvez alguém possa explicar o porque disso.
Aqui carrega o jar e retorna uma instância do Driver
Aqui usa o driver carregado para conexão
Agora vem o porém... se vc passar o driver direto pra registrar com o DriverManager não passa... não sei pq. Daí eu achei num paper muito do além q o cara tinha feito essa implementação da classe Driver, e com isso o DriverManager aceita o driver em tempo de execução.
Não tem nada de mais a implementação, mas funciona, e isso é o q as vezes é o mais importante
This message was edited 1 time. Last update was at 10/01/2008 10:23:47
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/01/2008 00:28:53
|
venomtotal
Java Ninja
![[Avatar]](/images/avatar/17ab7b5bb7ca18f6d5f33dfbcbaee1a2.jpg)
Membro desde: 24/04/2006 00:09:57
Mensagens: 298
Offline
|
Agradeço a todos pela disposição de ajudar e pelas respostas.
Amanhã vou testar e depois posto no que deu
venom
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2009 00:27:52
|
Zeed01
Virtual Machine Man
Membro desde: 27/10/2006 16:44:29
Mensagens: 668
Offline
|
Boa noite Colegas !
Estou com o mesmo problema...
Gobain:
No seu código o que deve ser passado no parametro driverClass no método:
private Driver carregarDriverJar(String caminho, String driverClass) {
??
Obrigado.
Um abraço.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2009 00:41:32
|
maquiavelbona
JWizard
![[Avatar]](/images/avatar/24bea84d52e6a1f8025e313c2ffff50a.jpg)
Membro desde: 29/06/2006 09:06:51
Mensagens: 2447
Localização: São Paulo - SP
Offline
|
Será que dar uma olhada nos sources de softwares como o SquirrelSql, ISQL e sql workbench não ajuda mais? Creio que os desenvolvedores tiveram esses mesmos problemas e ainda outros que vocês poderão ter.
Até!
|
----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)
"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/01/2009 01:01:14
|
Zeed01
Virtual Machine Man
Membro desde: 27/10/2006 16:44:29
Mensagens: 668
Offline
|
Boa madrugada Colegas !
maquiavelbona:
Confesso que baixei os fontes do SquirrelSql... mas não consegui encontrar a resposta.
Você tem a solução para me ajudar ?
Obrigado.
Um abraço.
|
|
|
 |
|
|