簡體   English   中英

Java 中 DuckDb 本機代碼的 UnsatisfiedLinkError

[英]UnsatisfiedLinkError for DuckDb native code in Java

嘗試在 EC2 實例上打開與 DuckDb 的連接時:

NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"

我收到以下錯誤:

Caused by: java.lang.UnsatisfiedLinkError: 'java.nio.ByteBuffer org.duckdb.DuckDBNative.duckdb_jdbc_startup(byte[], boolean)'
        at org.duckdb.DuckDBNative.duckdb_jdbc_startup(Native Method)
        at org.duckdb.DuckDBDatabase.<init>(DuckDBDatabase.java:22)

開碼連接如下:

try {
    DuckDBDatabase duckDb = new DuckDBDatabase("jdbc:duckdb:", false);
    connection= new DuckDBConnection(duckDb);
} catch (SQLException e) {
    throw new RuntimeException("Unable to open DuckDB connection.", e);
}

DuckDb 作為 gradle 中的依賴項添加:

implementation 'org.duckdb:duckdb_jdbc:0.2.4'

相同的代碼在 Windows 和 Linux 上本地工作。 有任何想法嗎?

問題在於架構。 在深入研究 DuckDb 代碼后,發現它只接受 x86_64 和 amd64。 我們的實例是 aarch64,因此從未加載過.so 文件。

暫無
暫無

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

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