簡體   English   中英

在Mac OS X上使用sqlite4java Jar的UnsatisfiedLinkError

[英]UnsatisfiedLinkError with sqlite4java Jar on Mac OS X

我在我的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中執行此操作:

  1. 轉到“文件” - >“導出...”
  2. 在“其他”文件夾下,選擇“Mac OS X應用程序包”
  3. 填寫第一個屏幕,然后單擊“下一步”
  4. 在“添加到捆綁包”部分下,在“添加到類路徑”部分的SQLite下載中添加“libsqlite4java-osx.jnilib”文件(您還可以添加libsqlite4java-osx-10.4.jnilib和libsqlite4java-osx-ppc。 jnilib如果你支持傳統硬件)
  5. 點擊“完成”

您現在將擁有一個正確加載sqlite4java的Mac OS X應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM