首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修复'sqlite-3.7.2-sqlitejdbc.dll: Can't load IA 32-bit .dll on a amd64-bit platform‘

如何修复'sqlite-3.7.2-sqlitejdbc.dll: Can't load IA 32-bit .dll on a amd64-bit platform‘
EN

Stack Overflow用户
提问于 2019-08-26 13:57:01
回答 1查看 294关注 0票数 1

我想加载sqlite spatialfunction,所以我执行了stmt.execute("SELECT load_extension('mod_spatialite')");然后我得到了错误: java.lang.UnsatisfiedLinkError: AMD64位平台上的sqlite不能加载IA 32位.dll

我尝试删除sqlite-3.7.2-sqlitejdbc.dll并下载一个64位函数并放入file.But当我再次运行代码时,我发现sqlite-3.7.2-sqlitejdbc.dll(32位版本)将由代码生成,它将覆盖下载的版本。

事实上,我以前已经成功地在同一台机器上运行过。它可以执行一些空间sql函数,但是当我新建一个项目并重复它时,出现了这个错误。

下面是一些代码:

代码语言:javascript
运行
复制
    String path = System.getProperty("java.library.path");
    System.out.println(path);
    // 加载JDBC
    Class.forName("org.sqlite.JDBC");


    Connection conn = null;

    try {

        // absolutely required by SpatiaLite
        SQLiteConfig config = new SQLiteConfig();
        config.enableLoadExtension(true);

        // create a database connection
        conn = DriverManager.getConnection("jdbc:sqlite:C:\\sqlite-tools-win32-x86-3290000\\OrgDBForCheck.db3",
                config.toProperties());
        Statement stmt = conn.createStatement();
        stmt.setQueryTimeout(30);

        // loading SpatiaLite
        stmt.execute("SELECT load_extension('mod_spatialite')");

        ResultSet rs = stmt.executeQuery("SELECT aswkt(geometry)\n" +
                " FROM AD_HP\n" +
                "where X(Geometry)>120\n");
EN

回答 1

Stack Overflow用户

发布于 2020-04-12 03:59:35

问题是您的sqlite jar文件只包含32位.dll,您可以检查它是否有两个32位和64位版本的.dll。

以下是下载正确的驱动程序jar文件https://bitbucket.org/xerial/sqlite-jdbc/downloads/的链接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57652472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档