Migrei minhas workstatios para Linux e agora acontece o seguinte:
- Por padrão, crio uma pasta lib dentro do diretório src do meu projeto;
- Estou usando agora o mysql_connector_8.0 (documentação oficial);
- Executando o projeto DENTRO do Apache Netbeans 11.1 ele funciona perfeitamente;
- Quando faço o Clean and Build Project (Shift+F11) e vou na pasta dist para testar o programa, ele executa todo procedimento, mas dá erro de ClassNotFoundException.
Pela documentação, percebi que era:
String DRIVER = "com.mysql.jdbc.Driver";
… e agora é:
/* acrescentou o .cj depois do mysql */
String DRIVER = "com.mysql.cj.jdbc.Driver";
O restante é de maneira igual às versões anteriores.
Portanto, meu código ficou assim:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
public class ConectaBD {
Connection con = null;
String DRIVER = "com.mysql.cj.jdbc.Driver";
String URL = "jdbc:mysql://localhost/teste";
String USUARIO = "root";
String SENHA = "";
public Connection getConnection() {
try {
Class.forName(DRIVER);
con = DriverManager.getConnection(URL,USUARIO,SENHA);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Houve uma falha de Conexão do Driver.\n\n" + ex, "FALHA", 0);
} catch (ClassNotFoundException ex) {
// o erro aparece sempre aqui
JOptionPane.showMessageDialog(null, "Houve uma falha da Classe Driver.\n\n" + ex, "FALHA", 0);
}
return con;
}
}
Seria alguma particularidade da nova versão ou uma configuração de projeto?