0
Java 프로젝트를 jar 파일로 Eclipse에 저장하려고합니다..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;
}
이클립스에서 모든 것이 괜찮습니다. 프로젝트가 작동하고 예외는 없지만 프로젝트를 Runnable Jar 파일 또는 Jar 파일로 내보낼 때 항상 ConnessioneException =null
을 반환하므로 db에 대한 연결이 실패합니다.
예외는 메소드의 getInstance에 나와 줄 "새로운 SingletonConnection()"
내가 다른 PC에 해당 프로그램을 실행해야합니다, 그래서 그 해결해야합니다. Eclipse를 계속 사용할 수 없습니다.
스택 트레이스는 무엇입니까 : 어쩌면 누군가를 위해 도움이 될 수 있습니까? jar 파일에 ODBC 드라이버가 포함되어 있습니까? – Thilo
그냥 몇 가지 조언, 잡을하지 마십시오 (예외 e) ... 던져 새로운 ConnessioneException(); 항상 새로운 ConnessioneException ("catch Exception", e)과 같은 것을하십시오. 따라서 스택 추적에 항상 예외의 근본 원인이 있습니다. –
Matthew에게 조언 해 주셔서 감사합니다. 그러나 Thilo는 내가 운전자를 포함하지 않는다고 말했습니다. 그래서 나는 그것을 어떻게 수행 할 것인가에 대해 조사하고 있습니다. ^^ –