DynamoDB Lokal: Gagal memuat perpustakaan asli sqlite4java — "Failed to load native library sqlite4java"
TL;DR — Mesin penyimpanan DynamoDB Lokal memuat perpustakaan asli (sqlite4java) saat startup, dan JVM tidak dapat menemukannya atau tidak dapat menjalankannya. Dua penyebab klasik: Anda meluncurkan jar tanpa -Djava.library.path=./DynamoDBLocal_lib, atau Anda menggunakan Apple Silicon Mac dan biner yang dibundel adalah untuk x86_64. Arahkan JVM ke folder native-lib, perbarui ke DynamoDB Lokal saat ini, atau jalankan image Docker multi-lengkungan.
Apa artinya
Failed to load native library:'libsqlite4java-osx-1.0.392.dylib'. ...
java.lang.UnsatisfiedLinkError: no sqlite4java-osx-x86_64-1.0.392 in java.library.path
# Unable to start DynamoDB Local — native library load failureDynamoDB Lokal adalah aplikasi Java yang penyimpanan pada disknya didukung oleh pustaka asli (per OS, per arsitektur). UnsatisfiedLinkError adalah JVM yang menyatakan bahwa ia tidak dapat menautkan biner tersebut — entah ia tidak ada di jalur perpustakaan sama sekali, atau file tersebut ada tetapi dibuat untuk arsitektur OS/CPU yang berbeda dari JVM Anda. Emulator tidak dapat memulai tanpanya.
Mengapa itu terjadi
-Djava.library.pathHilang — unduhan mengirimkan versi asli dalamDynamoDBLocal_lib/, dan perintah peluncuran yang terdokumentasi harus mengarahkan JVM ke sana. Menjalankanjava -jar DynamoDBLocal.jartelanjang (atau dari direktori kerja lain) akan menghilangkannya.- Apple Silicon (M-series) + x86_64 native — build dan wrapper Lokal DynamoDB yang lebih lama hanya memaketkan binari Intel
libsqlite4java-osx; JVM ARM64 menolak memuatnya ("tidak ada arsitektur yang cocok"). - Pembungkus yang menyematkan salinan lama —
jest-dynamodb,serverless-dynamodb-local, dan alat serupa mengunduh DynamoDB Lokal mereka sendiri; versi lama yang di-cache membuat versi asli tetap ada bahkan setelah Anda "memperbarui". - Pribumi diekstraksi ke direktori sementara yang telah dibersihkan — beberapa pengaturan dibongkar ke dalam folder sementara yang dihapus OS, sehingga berfungsi hingga reboot.
Bagaimana cara memperbaikinya
Luncurkan dengan cara yang terdokumentasi, dari folder yang diekstraksi:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDbPerbarui DynamoDB Lokal — unduh rilis saat ini; versi yang lebih baru menyelesaikan situasi Apple Silicon yang melanda versi lama. Jika wrapper mengelola instalasi, kosongkan cache/reinstall sehingga ia benar-benar mengambil versi baru.
Atau hindari versi asli sepenuhnya dengan Docker — image
amazon/dynamodb-localadalah jalur yang paling tidak rapuh dan berjalan di Apple Silicon:docker run -p 8000:8000 amazon/dynamodb-localDi Apple Silicon dengan versi lama, Anda tidak dapat mengubahnya: jalankan x86_64 JDK pada Rosetta 2 (Intel asli kemudian cocok dengan JVM), atau ganti
libsqlite4java-osx.dylibdengan versi ARM64 yang diterbitkan komunitas dari sqlite4java.Escape hatch dalam memori:
-inMemorymasih memerlukan pustaka dalam versi saat ini — ini bukan solusi untuk versi asli yang hilang; perbaiki jalur/arch sebagai gantinya.
Buka di DynoTable
Setelah Lokal dimulai, sambungkan dari DynoTable — Pengaturan → Profil → titik akhir http://localhost:8000, string wilayah mana pun, kredensial tiruan, lalu Uji Koneksi. Buka tabel unggulan dengan ⌘K tanpa menulis skrip konektivitas.
Siapkan data benih dengan konverter JSON. Lihat Instal dan Hubungkan ke AWS untuk jalur konfigurasi Lokal selengkapnya.
Sumber
- Menerapkan DynamoDB secara lokal (diverifikasi 13-07-2026)
- amazon/dynamodb-local — Docker Hub (diverifikasi 13-07-2026)
Kesalahan terkait
- Tidak dapat memulai proses Lokal DynamoDB — payung kegagalan startup yang sering kali tersembunyi di dalamnya.
- Port lokal DynamoDB 8000 sedang digunakan
- Tidak dapat terhubung ke DynamoDB Lokal
- Pelajari: Menjalankan DynamoDB Lokal
Referensi
- Menyebarkan DynamoDB secara lokal di komputer Anda — Panduan Pengembang AWS DynamoDB (perintah peluncuran
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jaryang terdokumentasi) - Catatan penggunaan lokal DynamoDB — Panduan Pengembang AWS DynamoDB (
-sharedDb,-inMemorydan opsi runtime lainnya) - amazon/dynamodb-local — Docker Hub (gambar multi-arsitektur resmi — amd64 + arm64, sehingga berjalan secara asli di Apple Silicon)
Terakhir diverifikasi 2026-07-13 berdasarkan dokumentasi resmi AWS yang ditautkan di atas.