您好,我使用bazel来构建我的java项目。我已经从maven迁移到了bazel。一切都构建得很好,可以正常运行。
项目结构
src/main/
BUILD
java/
Main.java
...
resources/
sqlite.db
...
构建
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文件时,我得到了一个异常,指示该文件不存在。
后的targes/文件夹中
发布于 2018-08-20 04:20:31
我通过改变来解决这个问题
java.sql.DriverManager.getConnection("jdbc:sqlite:" + dbLoc)
至
java.sql.DriverManager.getConnection("jdbc:sqlite::resource:" + dbLoc)
https://stackoverflow.com/questions/51652133
复制相似问题