Я пытаюсь сохранить проект Java в Eclipse как файл jar.Не удается подключиться к базе данных из файла .jar
Поскольку я работаю с базой данных Access, и я должен экспортировать все, я решил включить файл базы данных в ту же папку, что и Main.class
, и SingletonConnection.class
(который является классом, который управляет соединением с базой данных).
Так код:
private SingletonConnection()throws ConnessioneException{
idConnection = "root";
passConnection = "";
String slash="\\";
String path=this.getClass().getResource("").getPath().replaceFirst("^.*:", "").replaceFirst("!.*$", "").replace("/", slash.concat("\\"));
System.out.println("path è "+path);
driverConnection = "sun.jdbc.odbc.JdbcOdbcDriver";
stringConnection = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C:"+path+"eventi.mdb";
try {
Class.forName(driverConnection);
conn = DriverManager.getConnection(stringConnection,idConnection,passConnection);
} catch (Exception e) {
e.printStackTrace();
throw new ConnessioneException();
}
}
public static Connection getInstance()throws ConnessioneException{
if(conn==null)
new SingletonConnection();
return conn;
}
В Eclipse все в порядке. Проект работает и никаких исключений, но когда я пытаюсь экспортировать проект как Runnable Jar File или Jar File, он всегда возвращает ConnessioneException =null
, поэтому соединение с db не выполняется.
Исключение дается в методе GetInstance, линия «новый SingletonConnection()»
мне нужно запустить эту программу на других компьютерах, так что мне нужно решить, что. Я не могу продолжать использовать Eclipse.
Что такое StackTrace? является драйвером ODBC, включенным в файл jar? – Thilo
Просто совет, никогда не поймайте (исключение e) ... запустите новый ConnessioneException(); Всегда делайте что-то вроде броска нового ConnessioneException («пойманное исключение», e); поэтому у вас всегда будет основная причина исключения в стеке. –
спасибо за совет Мэтью .. однако, как сказал Тило, я не включил драйверы. Так что я googling о том, как это сделать ^^ –