Problema com versões do java

4 respostas
K

Bom pessoal, eu comecei a ter uns problemas com base nas versões do java.
Com o uso de alguns programas que fiz para minha empresa comecei a perceber que eles só funcionam usando o java baixando junto com a API. (Netbeans completo).
Esses dias fiz a instalação do mesmo em outras máquinas que usam aquele simples java baixado do site, e ele apresenta problemas para acessar o banco de dados access. Eu até postei um tópico faz tempo (http://www.guj.com.br/java/277192-problemas-com-bd-access-no-netbeans) pedindo ajuda sobre isso, e acabei concertando… mais o concerto foi baixando a api completa do netbeans.

Ai vim me perguntar ontem quando comprei 2 programas empresariais feito em java. Porque eles funcionam perfeitamente usando o java convencional que todo computador hoje tem, e o meu só roda usando o java da API completa?

Obs: Meus programas abrem normalmente com java convencional, mais o sistema do banco não funciona corretamente, só se usar a API. Com isso se a máquina atualizar o java para uso em outros programas, o meu sistema volta a dar problemas… precisando então baixar a API novamente e instalar.

Erro:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application.

O que estou fazendo de errado?

4 Respostas

B

Java da máquina = JRE, Java da API = JDK, estou certo?

Procurando o erro aqui no Google, falam que acontece ao acessar um Access 32 bits com um Java 64 bits ou vice-versa.

K

O interessante é que a engine do banco de dados do access eu já fiz a adaptação para 64bit usando o (AccessDatabaseEngine_x64 ) disponibilizado no site… Então será que cada vez que atualiza o java, ele baixa a versão 32 em vez de 64bit do próprio java? O complicado e achar que o java cometa esse erro, de não verificar a versão do SO antes de atualizar.

Edit:
Será que outros BD como mysql possuem esses problemas?
Alguém recomenda um bom para uso em programas gerenciadores de industrias?

B

O atualizador do Java não faz confusão entre versões, ele só baixa a mesma versão que foi instalado.

MySQL não vai ter problemas por que ele faz comunicação via rede com o JDBC, e não via uma API em C/C++ do ODBC(que acho que faz comunicação inteprocessos).

Se tiver liberdade de escolha do banco a ser usado, e precisar embarcar ele na tua aplicação, também há outras opções como SQLite, HSQLDB, Derby/JavaDB, H2, etc. O JavaDB mesmo já vem instalado junto com o Java 6.

PS: Eu só fiz uma pesquisa do erro e peguei um caso que encaixava, pode não ser o teu problema.

Um link: http://msdn.microsoft.com/en-us/library/cc645931.aspx

K

Com certeza o problema que meu projeto tem, é este do site… mais em vista ao JavaBD que você comentou, achei bem mais interessante usar ele, do que o Access!

Como é uma nova versão que estou construindo, pois a primeira saiu com alguns imprevistos, acho que não vou ter problema para implementar este tipo de banco de dados no projeto… como é um BD já do java, acho que não terei mais problemas futuros como este que estou tendo agora correto?

O programa é simples, nada envolvendo multi-clientes, então acho que vai ser melhor do que implementar o mysql.

Criado 16 de fevereiro de 2013
Ultima resposta 16 de fev. de 2013
Respostas 4
Participantes 2