Java 在MacOS上使用spatialite与xerial/sqlite jdbc
在Java中加载spatialite扩展以读取地理包时遇到一些问题,我有以下代码片段:Java 在MacOS上使用spatialite与xerial/sqlite jdbc,java,sqlite,jdbc,spatialite,geopackage,Java,Sqlite,Jdbc,Spatialite,Geopackage,在Java中加载spatialite扩展以读取地理包时遇到一些问题,我有以下代码片段: import org.sqlite.SQLiteConfig; import java.net.URI; import java.net.URISyntaxException; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; public class DatabaseTest {
import org.sqlite.SQLiteConfig;
import java.net.URI;
import java.net.URISyntaxException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
public class DatabaseTest {
public static void main(String[] args) throws SQLException, URISyntaxException {
URI databaseURI = DatabaseTest.class.getResource("/database.gpkg").toURI();
String databaseURL = String.format("jdbc:sqlite:%s", databaseURI);
SQLiteConfig config = new SQLiteConfig();
config.enableLoadExtension(true);
Connection connection = config.createConnection(databaseURL);
Statement statement = connection.createStatement();
boolean success = statement.execute("SELECT load_extension('mod_spatialite')");
System.out.println(success);
statement.close();
connection.close();
}
}
这将导致[SQLITE\u ERROR]SQL错误或缺少数据库(dlopen(mod_spatialite.dylib,10):找不到图像)
如果我换成
boolean success = statement.execute("SELECT load_extension('/usr/local/lib/mod_spatialite')");
它导致过程以退出代码134结束(被信号6:SIGABRT中断)
有什么我遗漏的吗。我已经使用自制软件安装了sqlite3
和spatialite
,这就是我尝试使用的spatialite
版本