在使用sqlite4java时出现了UnsatisfiedLinkError错误,没有找到sqlite4java-osx-amd64。
在使用sqlite4java时出现了UnsatisfiedLinkError错误,没有找到sqlite4java-osx-amd64。
我遇到了与这个问题类似的问题:
在Mac OS X NetBeans上使用sqlite4java Jar包出现UnsatisfiedLinkError错误
我正在运行一个使用sqlite的脚本,虽然我能够成功通过命令行运行sqlite3,但是当我尝试运行脚本时总是出现这个错误:
SEVERE: [sqlite] SQLiteQueue[master.catalog]: error running job queue com.almworks.sqlite4java.SQLiteException: [-91] cannot load library: java.lang.UnsatisfiedLinkError: no sqlite4java-osx-amd64 in java.library.path
当我在我的lib文件夹中运行"java -jar sqlite4java.jar -d"时,我看到了这个:
140428:170139.831 FINE [sqlite] Internal: loading library 140428:170139.853 FINE [sqlite] Internal: java.library.path=/Users/lee33/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java 140428:170139.853 FINE [sqlite] Internal: sqlite4java.library.path=null 140428:170139.853 FINE [sqlite] Internal: cwd=/Users/lee33/Desktop/myria_workspace/myria/lib/sqlite4java-282/. 140428:170139.853 FINE [sqlite] Internal: default path=null 140428:170139.853 FINE [sqlite] Internal: forced path=null 140428:170139.854 FINE [sqlite] Internal: os.name=mac os x; os=osx 140428:170139.854 FINE [sqlite] Internal: os.arch=amd64 140428:170139.854 FINE [sqlite] Internal: trying to load sqlite4java-osx-amd64 140428:170139.855 FINE [sqlite] Internal: cannot load sqlite4java-osx-amd64: java.lang.UnsatisfiedLinkError: no sqlite4java-osx-amd64 in java.library.path 140428:170139.855 FINE [sqlite] Internal: trying to load sqlite4java-osx-10.4 140428:170139.856 FINE [sqlite] Internal: cannot load sqlite4java-osx-10.4: java.lang.UnsatisfiedLinkError: no sqlite4java-osx-10.4 in java.library.path 140428:170139.856 FINE [sqlite] Internal: trying to load sqlite4java-osx 140428:170139.857 FINE [sqlite] Internal: cannot load sqlite4java-osx: java.lang.UnsatisfiedLinkError: no sqlite4java-osx in java.library.path 140428:170139.857 FINE [sqlite] Internal: trying to load sqlite4java 140428:170139.858 FINE [sqlite] Internal: cannot load sqlite4java: java.lang.UnsatisfiedLinkError: no sqlite4java in java.library.path 140428:170139.858 FINE [sqlite] Internal: trying to load sqlite4java-osx-amd64-d 140428:170139.859 FINE [sqlite] Internal: cannot load sqlite4java-osx-amd64-d: java.lang.UnsatisfiedLinkError: no sqlite4java-osx-amd64-d in java.library.path 140428:170139.859 FINE [sqlite] Internal: trying to load sqlite4java-osx-10.4-d 140428:170139.859 FINE [sqlite] Internal: cannot load sqlite4java-osx-10.4-d: java.lang.UnsatisfiedLinkError: no sqlite4java-osx-10.4-d in java.library.path 140428:170139.860 FINE [sqlite] Internal: trying to load sqlite4java-osx-d 140428:170139.860 FINE [sqlite] Internal: cannot load sqlite4java-osx-d: java.lang.UnsatisfiedLinkError: no sqlite4java-osx-d in java.library.path 140428:170139.860 FINE [sqlite] Internal: trying to load sqlite4java-d 140428:170139.861 FINE [sqlite] Internal: cannot load sqlite4java-d: java.lang.UnsatisfiedLinkError: no sqlite4java-d in java.library.path Error: cannot load SQLite java.lang.UnsatisfiedLinkError: no sqlite4java-osx-amd64 in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860) at java.lang.Runtime.loadLibrary0(Runtime.java:845) at java.lang.System.loadLibrary(System.java:1084) at com.almworks.sqlite4java.Internal.tryLoadFromSystemPath(Internal.java:349) at com.almworks.sqlite4java.Internal.loadLibraryX(Internal.java:124) at com.almworks.sqlite4java.SQLite.main(SQLite.java:368)
有人对我缺少什么有什么想法吗?
出现问题的原因是java.library.path
没有包括当前目录。解决方法有三种:
1. 运行命令java -Djava.library.path=. -jar sqlite4java.jar
,将当前目录添加到java.library.path
中。
2. 将sqlite4java-282.zip
中的*.jnilib
文件复制到java.library.path
中的任何目录中,例如/Users/lee33/Library/Java/Extensions
。
3. 在IDE中调整项目的路径,具体方法可以参考上述提到的链接。
作者表示感谢答案,并说明以上方法对他来说都没有奏效,但是他最终成功地将整个sqlite4java-282
文件夹复制到了/Users/MY_USERNAME/Library/Java/Extensions
目录下,并成功解决了问题。