Estou tentando fazer um simples teste, apenas me conectando a um banco local, SQLite. Mas, ao tentar executar a partir de um .jar, aparece a mensagem de erro dizendo que o driver não foi encontrado. Não uso nenhuma IDE, compilo os arquivos .java direto pelo terminal.
Meu código:
package Teste;
import java.sql.Connection;
import java.sql.DriverManager;
public class Teste {
public static void main(String[] args) {
try {
Connection c = DriverManager.getConnection("jdbc:sqlite:test.db");
System.out.println("Teste");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Compilo usando:
javac Teste/Teste.java
jar cfmv Teste.jar manifest.txt Teste/Teste.class sqlite-jdbc-3.8.11.2.jar
manifest.txt:
Main-Class: Teste.Teste
Class-Path: sqlite-jdbc-3.8.11.2.jar
Minha estrutura de pastas:
SQLite/
sqlite-jdbc-3.8.11.2.jar
manifest.txt
Teste/
Teste.java
Se eu executo na mesma pasta onde o sqlite-jdbc-3.8.11.2.jar se encontra, roda sem problemas. Se movo o Teste.jar gerado para outra pasta, recebo:
java.sql.SQLException: No suitable driver found for jdbc:sqlite:test.db
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at Teste.Teste.main(Teste.java:9)
Desde já, muito obrigado!