java - 带有 sqlite 驱动程序的 Jar 可执行文件

标签 java sqlite jar

我编写了一个代码,连接到位于 CLASSPATH 中的 sqlite 驱动程序并读取一些数据库文件。我想创建一个可以在没有 sqlite 驱动程序的计算机上使用的可执行文件。

如果我这样做:

jar cvfe exec.jar main_class

运行时我会得到“class not found: org.sqlite.JDBC”

java -jar exec.jar

我应该怎样做才能使可执行文件正常工作?

编辑: 我不知道这是否有什么区别,但这是我使用的 JDBC 驱动程序:

https://bitbucket.org/xerial/sqlite-jdbc

最佳答案

您需要将库包含在 JAR 中。也许您不知道这一点,JAR 文件只是 ZIP 文件,因此您可以轻松更改其内容。以下是一些有关如何操作的快速说明。假设您的 JAR 文件名为 exec.jar,并且您要包含的库的 JAR(您下载的 JAR)是 driver.jar

  1. 将文件名从 exec.jar 更改为 exec.zip
  2. exec.zip 的所有内容提取到文件夹 exec/
  3. 将库文件名从 driver.jar 更改为 driver.zip
  4. driver.zip 的所有内容解压到文件夹 driver/
  5. driver/ 的内容复制到 exec/ 中,但不复制META-INF 文件夹。如果弹出窗口询问是否可以合并文件夹,请单击"is"。
  6. exec/中的所有文件压缩为exec.zip
  7. exec.zip重命名为exec.jar(替换原来的)。

您可以使用此方法将任何 Java 库包含在 JAR 中。

关于java - 带有 sqlite 驱动程序的 Jar 可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25850590/

相关文章:

使用xml而不是jaxb注释的Java webservice工具?

java - 带有 Recyclerview 的 Exoplayer

java - 如何将类中的静态变量转换为json

java - 无法执行 jar- 文件 : "no main manifest attribute"

java - 比较 Java 中 Git 分支的基准?

c# - 如何在Web应用程序而不是C#中的Windows应用程序中创建sqlite文件

python - 如何解决无法将表名解析为 python sqlite 查询的问题?

ruby - 如何使用 Sequel 连接到 postgres 数据库?

java - 更改 netbeans 中的 list (Trusted-Library=true 属性)

hadoop - vertica jar