1问题1

使用docker镜像部署springboot程序,sqlite出错,在windows和linux环境都没有问题,使用docker部署就报错

Caused by: java.lang.UnsatisfiedLinkError: org.sqlite.core.NativeDB._open_utf8([BI)V

1.1原因及解决

基础镜像错误

FROM java:8-jre-alpine

将基础镜像替换为下面镜像

FROM openjdk:8-jre-alpine3.9

程序正常运行

1.2错误日志

Caused by: java.lang.UnsatisfiedLinkError: org.sqlite.core.NativeDB._open_utf8([BI)V
at org.sqlite.core.NativeDB._open_utf8(Native Method)
at org.sqlite.core.NativeDB._open(NativeDB.java:)
at org.sqlite.core.DB.open(DB.java:)
at org.sqlite.core.CoreConnection.open(CoreConnection.java:)
at org.sqlite.core.CoreConnection.<init>(CoreConnection.java:)
at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:)
at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:)
at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:)
at org.sqlite.JDBC.createConnection(JDBC.java:)
at org.sqlite.JDBC.connect(JDBC.java:)
at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:)
at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:)
at com.alibaba.druid.filter.FilterEventAdapter.connection_connect(FilterEventAdapter.java:)
at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:)
at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:)
at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:)
at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:)
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:)
... common frames omitted

2问题2

将基础镜像更换为openjdk:8-jre-alpine3.9后,查询地形表时又出现jvm错误,其他表没有问题(真的是奇怪)

错误信息如下

#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x000000000000a786, pid=, tid=0x00007f8029defb10
#
# JRE version: OpenJDK Runtime Environment (.0_212-b04) (build 1.8.0_212-b04)
# Java VM: OpenJDK -Bit Server VM (25.212-b04 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea 3.12.
# Distribution: Custom build (Sat May :: UTC )
# Problematic frame:
# C 0x000000000000a786
#
# Core dump written. Default location: //core or core.1
#
# If you would like to submit a bug report, please include
# instructions on how to reproduce the bug and visit:
# https://icedtea.classpath.org/bugzilla
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

查看core错误也没有发现问题

https://blog.csdn.net/u014653854/article/details/91865468

2.1原因及解决

只能再次更换镜像,很有可能是jdk版本的问题。

openjdk:8-jre-alpine3.9镜像的jdk版本(不行)

/ # java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (IcedTea 3.12.) (Alpine 8.212.-r0)
OpenJDK -Bit Server VM (build 25.212-b04, mixed mode)

openjdk:8u222-slim镜像的jdk版本(可以)

# java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK -Bit Server VM (build 25.222-b10, mixed mode)

openjdk:8-jre-alpine镜像的jdk版本(不行)

/ # java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (IcedTea 3.12.) (Alpine 8.212.-r0)
OpenJDK -Bit Server VM (build 25.212-b04, mixed mode)

openjdk:8-jre-alpine3.8镜像的jdk版本(不行)

/ # java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (IcedTea 3.10.) (Alpine 8.191.-r0)
OpenJDK -Bit Server VM (build 25.191-b12, mixed mode)

openjdk:8u212-slim镜像的jdk版本(可以)

# java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK -Bit Server VM (build 25.212-b04, mixed mode)

openjdk:8u191-jre-alpine3.8镜像的jdk版本(不行)

/ # java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (IcedTea 3.10.) (Alpine 8.191.-r0)
OpenJDK -Bit Server VM (build 25.191-b12, mixed mode)

java sqlite docker,sqlite出错的更多相关文章

  1. 在Java中使用SQLite的教程(转)

    简介:这是在Java中使用SQLite的教程的详细页面,介绍了和java,有关的知识.技巧.经验,和一些java源码等. 简单的在Java中使用SQLite的教程 使用SQLiteJDBC封装 www ...

  2. [Sqlite] --&gt; Sqlite于Windows、Linux 和 Mac OS X 在安装过程

    一个:于 Windows 安装 SQLite  1,下载 请訪问SQLite下载页面http://www.sqlite.org/download.html.从Windows 区下载预编译的二进制文件. ...

  3. Java之List排序出错

    Java之List排序出错 Bound mismatch: The generic method sort(List<T>) of type Collections is not appl ...

  4. Sqlite数据库管理(SQLite Developer) v4.0.0.528 中文版+破解方法(申明:来源于网络)

    Sqlite数据库管理(SQLite Developer) v4.0.0.528 中文破解版 SharpPlus Sqlite Developer 特性: -强大的SQL编辑器 *Sqlite Sql ...

  5. java执行jar包出错:Unable to access jarfile

    java执行jar包出错:Unable to access jarfile 错误的原因有多种: 1.一般都是路径不正确.在Windows中,正确的路径类似于: java -jar "D:\W ...

  6. Java项目使用SQLite数据库后无法启动的问题

    背景: Java > maven 的 jar 项目 功能是记录用户的每天的按键次数 使用 jar2exe 工具将 jar 转为 exe 可执行文件 原本项目中使用的Mysql数据库,使用Myba ...

  7. 在Java中使用Sqlite数据库

    一.安装 下载最新的 Sqlite Jdbc 驱动程序jar文件,并添加到Java工程的class路径下: 二.使用 以 sqlite Jdbc 驱动版本为 sqlitejdbc-v56.jar 为例 ...

  8. 【Java】操作Sqlite数据库

    首先在https://github.com/xerial/sqlite-jdbc下载jar包 import java.sql.Connection; import java.sql.DriverMan ...

  9. JAVA中的sqlite

    1.SQLiteJDBC SQLite JDBC Driver 可以在这个网站下载https://bitbucket.org/xerial/sqlite-jdbc/overview,当前稳定版本sql ...

随机推荐

  1. kubernetes第一章--介绍

  2. Hibernate中Session.get()/load()之区别

    原文链接http://sunxin1001.iteye.com/blog/292090 Session.load/get方法均可以根据指定的实体类和id从数据库读取记录,并返回与之对应的实体对象.其区 ...

  3. 平衡二叉树详解——PHP代码实现

    一.什么是平衡二叉树 平衡二叉树(Self-Balancing Binary Search Tree 或者 Height-Balancing Binary Search Tree)译为 自平衡的二叉查 ...

  4. Html form表单大全(一)

    在前后端交互的过程中,除了ajax请求之外,最常见的就是表单请求了. 由于form表单属性多,表单标签内容多且复杂,不深究的话很难全面的弄明白. 接下来就来详细的说一说整个form表单都有些什么,并且 ...

  5. ORM 对表操作 详解

    目录 ORM对表操作详解 表结构 ORM对表的 增 删 改 查 基于对象的跨表查询 -- 类似于子查询 基于双下划的跨表查询 -- 连表 join ORM对表的操作示例 正向查 与 反向查 relat ...

  6. CRM, C4C和SAP Hybris的数据库层设计

    SAP的product都是DB provider无关的. CRM大家都很熟悉了,application developer最多用Open SQL直接操作表. Netweaver里支持的DB provi ...

  7. vue入门模板——只需一个html

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. Vue路由传参的几种方式

    原 Vue路由传参的几种方式 2018年07月28日 23:52:40 广积粮缓称王 阅读数 12613   前言:顾名思义,vue路由传参是指嵌套路由时父路由向子路由传递参数,否则操作无效.传参方式 ...

  9. Android笔记(五十二) 侧滑菜单SlidingMenu

    SlidingMenu是一个优秀的开源项目,可以实现侧滑菜单,简单介绍一下这SlidingMenu的使用: 常用属性和方法: setTouchModeAbove(int i )是否可以通过滑动手势打开 ...

  10. c# BufferedStream 类