首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Bazel:使用sqlite.db的Java资源文件夹

Bazel:使用sqlite.db的Java资源文件夹
EN

Stack Overflow用户
提问于 2018-08-02 19:08:14
回答 1查看 900关注 0票数 2

您好,我使用bazel来构建我的java项目。我已经从maven迁移到了bazel。一切都构建得很好,可以正常运行。

项目结构

代码语言:javascript
复制
src/main/
    BUILD
    java/
         Main.java
         ...
    resources/
         sqlite.db
         ...

构建

代码语言:javascript
复制
java_binary(
    name = "app",
    main_class = "com.myapp.Main",
    runtime_deps = [":libs"],
)

java_library(
    name = "libs",
    srcs = glob(["src/main/java/**/*.java"]),
    resources = glob(["src/main/resources/**/*"]),
    deps = [...]
)

我的main.java中有String dbLoc = com.google.common.io.Resources.getResource("sqlite.db"),当我打印出bazel的位置时,我看到了bazel构建文件的位置。它将文件捆绑到一个jar中。

因此,当我试图在运行时java.sql.DriverManager.getConnection("jdbc:sqlite:" + dbLoc)中使用sqlite.db文件时,我得到了一个异常,指示该文件不存在。

  1. 如何构建以使db文件不捆绑到jar文件中?我想这就是为什么找不到文件的原因。我想我必须将db文件构建到类路径directly..
  2. Otherwise上,我在这里做错了什么?在maven中,此works fine...sqlite.db位于生成

后的targes/文件夹中

EN

回答 1

Stack Overflow用户

发布于 2018-08-20 04:20:31

我通过改变来解决这个问题

java.sql.DriverManager.getConnection("jdbc:sqlite:" + dbLoc)

java.sql.DriverManager.getConnection("jdbc:sqlite::resource:" + dbLoc)

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

https://stackoverflow.com/questions/51652133

复制
相关文章

相似问题

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