我创建了一个代码,该代码连接到sqlite
中的CLASSPATH
驱动程序并读取一些数据库文件。我想创建一个可执行文件,可以在没有sqlite
驱动程序的计算机上使用。
如果我这样做:
jar cvfe exec.jar main_class
使用
运行时,我会得到“未找到类:org.sqlite.JDBC”java -jar exec.jar
如何使可执行文件正常工作?
编辑: 我不知道它是否有任何区别,但这是我使用的JDBC驱动程序:
答案 0 :(得分:2)
您需要在JAR中包含库。也许您不知道这一点,但JAR文件只是ZIP文件,因此您可以轻松更改其内容。以下是一些如何操作的快速说明。假设您的JAR文件名为exec.jar
,并且要包含的库(您下载的JAR)的JAR是driver.jar
exec.jar
更改为exec.zip
。exec.zip
的所有内容解压缩到文件夹exec/
driver.jar
更改为driver.zip
driver.zip
的所有内容解压缩到文件夹driver/
driver/
的内容复制到exec/
,但不要复制 META-INF
文件夹。如果弹出窗口询问是否可以合并文件夹,请单击“是”。exec/
中的所有文件压缩为exec.zip
exec.zip
重命名为exec.jar
(替换原始文件)。您可以使用此方法在JAR中包含任何Java库。
答案 1 :(得分:0)
这是doc:
C:\Windows\System32>jar /?
Illegal option: /
Usage: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
所以我认为你需要的命令是:
jar cvfe exec.jar main_class main_class