我在 Java 应用程序中使用 sqlite4java 库,当我在 Eclipse 中运行它时它工作得很好。但是当我构建可运行的 JAR 并尝试在 Mac OS X 上运行它时,出现以下错误:
Error: Could not load database file.
Error: com.almworks.sqlite4java.SQLiteException: [-91] cannot load library:
java.lang.UnsatisfiedLinkError: no sqlite4java-osx-x86_64 in java.library.path
即使我选择“将所需的库打包到生成的 JAR 中”(据说会复制我需要的所有文件),也会发生这种情况。为什么这不起作用?
与许多其他依赖项不同,sqlite4java 使用基于主机平台的附加文件来与 SQLite 数据库交互。当Eclipse打包所需的库时,它只复制sqlite4java.jar文件,而不复制其他所需的文件。
您可能认为解决方案是使用选项“将所需的库复制到生成的 JAR 旁边的子文件夹中”导出可运行的 JAR 文件,并手动添加缺少的文件,但可惜,这似乎也不起作用。
我发现的最好的解决方案实际上是对 Mac 最友好的解决方案。您可以导出为 Mac OS X 应用程序包,而不是导出为可运行的 JAR 文件!要在 Eclipse 中执行此操作:
- 转到“文件”->“导出...”
- 在“其他”文件夹下,选择“Mac OS X 应用程序包”
- 填写第一个屏幕,然后单击“下一步”
- 在“添加到捆绑包”部分下,将 SQLite 下载中的“libsqlite4java-osx.jnilib”文件添加到“添加到类路径”部分(您还可以添加 libsqlite4java-osx-10.4.jnilib 和 libsqlite4java-osx-ppc。 jnilib(如果您支持旧硬件)
- 点击“完成”
您现在将拥有一个可以正确加载 sqlite4java 的 Mac OS X 应用程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)