I have a Java program compiled into a JAR that runs well on Windows. On Mac, it does not run well. I've included the stack trace, I get a
"java.lang.UnsatisfiedLinkError: org.sqlite.core.NativeDB._open(LJava/lang/String;I)V" error
It seems that it's failing at the second of these two lines in my program:
Class.forName("org.sqlite.JDBC").newInstance();
connection = DriverManager.getConnection(dbURL + dbLoc); //fails here
I've never seen one of these errors before, some research revealed that it may be a problem with the SQLite version and that I needed to include another JAR Library for SQLite that was compatible for Mac since the snapshot version below was not compatible. I have both of these libraries included in my project's libraries now:
- sqlite-jdbc-3.7.2.jar
- sqlite-jdbc4-3.8.2-SNAPSHOT.jar
Unfortunately I'm still getting the same error message. Again, the program runs flawlessly on Windows. This is a Mac issue only.
Anyone have any ideas?
Stack Trace:
java -jar "PRG - RYADD.jar"
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: org.sqlite.core.NativeDB._open(Ljava/lang/String;I)V
at org.sqlite.core.NativeDB._open(Native Method)
at org.sqlite.core.DB.open(DB.java:161)
at org.sqlite.core.CoreConnection.open(CoreConnection.java:145)
at org.sqlite.core.CoreConnection.<init>(CoreConnection.java:66)
at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:21)
at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:23)
at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:44)
at org.sqlite.JDBC.createConnection(JDBC.java:113)
at org.sqlite.JDBC.connect(JDBC.java:87)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at prgryadd.DBConnect.createConnection(DBConnect.java:43)
at prgryadd.DBConnect.<init>(DBConnect.java:32)
at prgryadd.PRGRYADDView.<clinit>(PRGRYADDView.java:756)
at prgryadd.PRGRYADDApp.startup(PRGRYADDApp.java:19)
at org.jdesktop.application.Application$1.run(Application.java:171)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:682)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:643)
at java.awt.EventQueue$1.run(EventQueue.java:641)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:652)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)