Olá
Estou com o seguinte problema, eu tenho uma aplicação que utiliza sqlite, porém se coloco o arquivo do banco (.db) na pasta onde está sendo executado o .jar, ele simplesmente não funciona e da o seguinte erro:
java.sql.SQLException: out of memory
at org.sqlite.DB.throwex(DB.java:288)
at org.sqlite.NestedDB._open(NestedDB.java:73)
at org.sqlite.DB.open(DB.java:77)
at org.sqlite.Conn.<init>(Conn.java:88)
at org.sqlite.JDBC.connect(JDBC.java:64)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:243)
at persistencia.ConectBD.conectBD(ConectBD.java:38)
at persistencia.ConectBD.<init>(ConectBD.java:26)
at persistencia.Persistencia.<init>(Persistencia.java:23)
at GUI.Main.<init>(Main.java:24)
at GUI.Main$13.run(Main.java:617)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:701)
at java.awt.EventQueue.access$000(EventQueue.java:102)
at java.awt.EventQueue$3.run(EventQueue.java:662)
at java.awt.EventQueue$3.run(EventQueue.java:660)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:671)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
Agora se coloco o arquivo .db na pasta c: do windows , ele roda normalmente. Eu tentei usar o System.getproperty(“user.dir”) e agora tentei usar o ./nomedoarquivo, mas das duas formas o problema persiste.
O código usado para conexão eh:
public boolean conectBD(){
boolean isConect=false;
try {
Class.forName("org.sqlite.JDBC");
conn= DriverManager.getConnection("jdbc:sqlite:./guia.db");
isConect=true;
this.createTable();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return isConect;
}
public void desconectBD(){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
Desde já Agradeço.