Dai galera!
Estava aqui fazendo um programinha que acessa banco de dados MySql e encontrava o seguinte erro toda vez que fazia ela rodar:
com.mysql.jdbc.Driverjava.lang.ClassNotFoundException:com.mysql.jdbc.Driver
Eu estava seguindo os passos de um livro que tenho aqui: baixei o driver, descompactei, movi o diretorio com\mysql\jdbc\ para a pasta lib do j2sdk mas nao funcionava. Resolvi entao fazer o seguinte: peguei esse mesmo diretorio e movi para a pasta lib da minha aplicaçao e para minha surpresa o erro desapareceu! Posteriormente fiz outro teste colocando soh o .jar do driver dentro da mesma pasta mas dai nao funcionou.
Para tentar entender o que estava ocorrendo imprimi o conteudo do classpath com o seguinte codigo(unica maneira possivel de ver o classpath?):
String classpath = System.getProperty("java.class.path",".");
System.out.println(classpath);
Nao encontrei nele o caminho do diretorio lib do j2sdk, porem encontrei o caminho do lib da minha aplicaçao, alguma coisa errada nisso?
Tentei depois setar o .jar no classpath com o comando
set CLASSPATH=.;%CLASSPATH%;C:\mysql-connector-java-3.0.15-ga\mysql-connector-java-3.0.15-ga-bin.jar; soh que nao deu certo.
Alguem ai pode dar uma luz sobre configuraçao do classpath para essa criatura ignorante que vos escreve? :oops:
Fischer
nao sei se entendi direito o q vc escreveu. mas la vai…
quando vc move um conjunto de classes para a pasta lib, elas ‘entram para o classpath’, porem com arquivos jar isso nao acontece. É necessário colocar o caminho completo para o arquivo no classpath.
outra opção é colocar o arquivo jar na pasta jre/lib/ext
blz!?
Caro Denis,
O meu problema ocorre justamente porque o que deveria funcionar nao esta funcionando!
1° - Eu movi a classe do Driver para o lib do j2sdk e nao funcionou desse jeito!
2° - Eu ja tentei colocar o caminho completo do .jar no classpath
(set CLASSPATH=.;%CLASSPATH%;C:\mysql-connector-java-3.0.15-ga\mysql-connector-java-3.0.15-ga-bin.jar;) e nao funcionou!
3° - Coloquei o .jar na pasta lib da minha aplicacao, dei o set classpath com o caminho dele nessa pasta (c:…\lib\mysql-connector-java-3.0.15-ga-bin.jar) e nao funcionou!
Entao eu nao sei o que ocorre. Eu seto essa porcaria, reinicio o pc, olho o classpath e nada eh acrescentado! O que pode estar errado, alem da peça que fica na frente do meu computador eh claro, hehehe :???:
Mesmo assim valew pela resposta!
Fischer
calma rapaz… não precisa se matar…
se vc estiver usando win 2000\XP:
Propriedades de Sistema\Avançado\Variáveis de Ambiente
dai vai em:
se vc tiver privilégios administrativos va em Variáveis de Sistema
se não, va em Variáveis de Usuário
ache a variavel classpath e adicione no final dela o valor: ;caminho_completo de_onde_esta_o_jar\pacote_jar.jar;
se não tiver a variavel classpath, crie e adicione: .;JAVA_HOME\lib;caminho_completo de_onde_esta_o_jar\pacote_jar.jar;
aí com certeza vai funcionar!
Bom, entao acho que nao o problema nao eh com variavel de ambiente porque ja fiz isso e o programa continua dando o erro java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver. Soh por via das duvidas vou postar as minhas variaveis e o trexo do programa onde o Driver eh lido.
JAVA_HOME -> c:\j2sdk1.4.2_05
PATH -> %PATH%;%JAVA_HOME%\bin
CLASSPATH -> .;JAVA_HOME\lib;c:\Java\jdbc\lib\mysql-connector-java-3.0.15-ga-bin.jar;
public BaseDeDados() {
try{
Class.forName("org.gjt.mm.mysql.Driver");
url = "jdbc:mysql://localhost/banco";
usuario = "root";
senha = "1234";
con = DriverManager.getConnection(url,usuario,senha);
stmt = con.createStatement();
}
//Driver nao encontrado
catch(ClassNotFoundException e){
System.err.print("Falha ao carregar driver");
e.printStackTrace();
}
O meu S.O. eh o W2K, o meu MySQL eh o mysql-4.0.21, o Apache eh o apache 1.3.31 e se alguem souber o que ha de errado por favor me avise. :oops:
Obrigado,
Fischer
Oi Fischer,
Na sua variável de classpath ta faltando o ‘%’ ao redor do ‘JAVA_HOME’ no classpath.
estou acostumado a fazer o classpath da seguinte forma:
CLASSPATH =%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;.;C:\Java\jdbc\lib\mysql-connector-java-3.0.15-ga-bin.jar
se vc utiliza win2k, entao nao precisa reiniciar para q as variaveis de ambiente sejam atualizadas!
vc pode tentar abrir esse arquivo jar utilizando algum programa q trabalhe com arquivos compactados (Winzip por exemplo) e verificar se essa classe está mesmo dentro desse jar.
vc pode tentar colocar o jar na pasta JAVA_HOME\jre\lib\ext (colocando nessa pasta, nao é preciso referenciar no classpath).
espero q agora vc consiga resolver seu problema :???:
Denis,
Colocando na pasta JAVA_HOME\jre\lib\ext funcionou legal. Algum desvantagem nesse tipo de solução ou setar no classpath é melhor? Tentei de tudo quanto é jeito pelo classpath mas não funciona…
Mesmo assim muito obrigado,
Fischer