DynamoDB 로컬 "Failed to load native library sqlite4java" — 네이티브 라이브러리 sqlite4java를 로드하지 못했습니다.
TL;DR — DynamoDB Local의 스토리지 엔진은 시작 시 기본 라이브러리(sqlite4java)를 로드하지만 JVM이 이를 찾을 수 없거나 실행할 수 없습니다. 두 가지 전형적인 원인은 -Djava.library.path=./DynamoDBLocal_lib 없이 jar를 실행했거나 Apple Silicon Mac을 사용 중이고 번들 바이너리가 x86_64용이라는 것입니다. Native-lib 폴더에서 JVM을 가리키거나, 현재 DynamoDB Local로 업데이트하거나, 멀티 아키텍처 Docker 이미지를 실행하세요.
무엇을 의미하는가
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 Local은 온디스크 스토리지가 네이티브(OS별, 아키텍처별) 라이브러리로 지원되는 Java 애플리케이션입니다. UnsatisfiedLinkError은 해당 바이너리를 연결할 수 없다는 JVM입니다. 라이브러리 경로에 전혀 없거나 파일이 존재하지만 JVM과 다른 OS/CPU 아키텍처용으로 빌드되었습니다. 에뮬레이터가 없으면 에뮬레이터를 시작할 수 없습니다.
왜 발생하는가
- Missing
-Djava.library.path— 다운로드는DynamoDBLocal_lib/의 네이티브를 제공하며 문서화된 실행 명령은 JVM을 그곳으로 가리켜야 합니다.java -jar DynamoDBLocal.jar를 실행하면(또는 다른 작업 디렉터리에서) 해당 항목이 손실됩니다. - Apple Silicon(M 시리즈) + x86_64 네이티브 — 이전 DynamoDB Local 빌드 및 래퍼는 Intel
libsqlite4java-osx바이너리만 번들로 제공합니다. ARM64 JVM은 로드를 거부합니다("일치하는 아키텍처 없음"). - 이전 복사본을 고정하는 래퍼 —
jest-dynamodb,serverless-dynamodb-local및 유사한 도구는 자체 DynamoDB Local을 다운로드합니다. 캐시된 이전 버전은 "업데이트" 후에도 오래된 기본 버전을 유지합니다. - 정리된 임시 디렉토리로 추출된 기본 — 일부 설정은 OS가 지운 임시 폴더에 압축을 풀므로 재부팅할 때까지 작동합니다.
어떻게 해결하는가
추출된 폴더에서 문서화된 방식으로 실행합니다.
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDbDynamoDB Local 업데이트 — 현재 릴리스를 다운로드합니다. 최신 빌드는 이전 빌드를 괴롭혔던 Apple Silicon 상황을 해결합니다. 래퍼가 설치를 관리하는 경우 캐시를 지우거나 다시 설치하면 실제로 새 버전을 가져올 수 있습니다.
또는 Docker를 사용하여 네이티브를 완전히 회피 —
amazon/dynamodb-local이미지는 가장 취약하지 않은 경로이며 Apple Silicon에서 실행됩니다.docker run -p 8000:8000 amazon/dynamodb-local이전 빌드가 있는 Apple Silicon에서는 변경할 수 없습니다. Rosetta 2에서 x86_64 JDK를 실행하거나(Intel 네이티브가 JVM과 일치함)
libsqlite4java-osx.dylib을 커뮤니티에 게시된 sqlite4java의 ARM64 빌드로 바꿉니다.인메모리 탈출구:
-inMemory에는 여전히 현재 빌드에 라이브러리가 필요합니다. 이는 누락된 네이티브에 대한 해결 방법이 아닙니다. 대신 경로/아치를 수정하세요.
DynoTable에서 열기
로컬이 시작되면 DynoTable — 설정 → 프로필 → 엔드포인트 http://localhost:8000, 모든 지역 문자열, 더미 자격 증명, 연결 테스트에서 연결합니다. 연결 스크립트를 작성하지 않고 ⌘K로 시드된 테이블을 엽니다.
JSON converter로 종자 데이터를 준비합니다. 전체 로컬 설정 경로는 Install 및 Connect to AWS를 참조하세요.
출처
- Deploying DynamoDB locally (2026-07-13 인증)
- amazon/dynamodb-local — Docker Hub (2026-07-13 인증)
관련 오류
- Unable to start DynamoDB Local process — 우산 시동 실패는 종종 내부에 숨겨져 있습니다.
- DynamoDB Local 8000 포트 사용 중
- DynamoDB Local에 연결할 수 없음
- 학습: Running DynamoDB Local
참고 자료
- Deploying DynamoDB locally on your computer — AWS DynamoDB Developer Guide (문서화된
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar발사 명령) - DynamoDB local usage notes — AWS DynamoDB Developer Guide (
-sharedDb,-inMemory및 기타 런타임 옵션) - amazon/dynamodb-local — Docker Hub(공식 다중 아키텍처 이미지 — amd64 + arm64, 따라서 Apple Silicon에서 기본적으로 실행됨)
위에 링크된 공식 AWS 문서를 기준으로 2026년 7월 13일에 마지막으로 확인되었습니다.