Galera, estou com o seguinte erro. Gerei um executavel do meu programa e ao abrir via esse executavel me sai o seguinte erro: “No suitable driver found for” minha conexao.
Vi bastante coisa no Google, a maioria gringas, mas as respostas foram bastante confusas pra mim. O mais estranho pra mim é que, se eu abro o executavel estando dentro da pasta “dist”, o programa roda normal. Mas se eu jogo o executavel pra outro lugar (área de trabalho, por ex), aí me dá o erro.
Bom, minha classe de conexao está assim:
public class ConexaoBanco {
public Statement stm;
public ResultSet rs;
private String driver = "org.postgresql.Driver";
private String caminho = "jdbc:postgresql://localhost:5432/sistemaArenas";
private String usuario = "postgres";
private String senha = "123"
public Connection con;
public void conectar() {
try {
System.setProperty("jdbc.Drivers", driver);
con = DriverManager.getConnection(caminho, usuario, senha);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Falha na conexao! \n " +ex.getMessage());
}
Esse erro, em geral, está associado a um path que não coincide com o esperado. Isso pode ocorrer por N razões, as principais são erro na escrita do path (que você chamou de caminho) ou incompatibilidade de versões.
O que me chamou a atenção e não entendi foi esta linha:
Pra mim isso é claramente um problema de classpath. Na hora de gerar o jar é preciso informar à aplicação onde achar as bibliotecas que você está usando. Executando pela pasta dist funciona pois por padrão a pasta onde o jar executa faz parte do classpath, mas se você pretende distribuir a aplicação, vai ter que dar uma estudada em como ajustar isso direito. Ou usar alguma ferramenta que coloque todas as libs dentro do jar, se não me engano o eclipse tem uma ferramenta que faz isso.