我有一个使用H2数据库和以下连接字符串的应用程序:
Connection connection = DriverManager.getConnection("jdbc:h2:file:data/sample", "sa", "");
它在Eclipse下运行良好,但是如果我将Java桌面应用程序打包到JAR文件中,则无法再在数据/样本中找到H2数据库。这是运行目录:
application.jar
data |
sample.h2.db
以下是我尝试执行该应用程序的方法:
java -classpath .; -jar application.jar
引发SQLException,因为没有找到表。任何提示如何让我的Connection运行到Eclipse和JAR文件中?
请注意,作为要求,我不应该使用数据库的绝对路径,而是使用相对路径,因为Application Installer会将数据库文件夹与jar文件一起解压缩。
答案 0 :(得分:1)
我可以考虑一些可能的错误原因:
对于第二种可能性,如果找不到,H2会自动创建一个新数据库。为避免在路径错误时自动创建,您可以将;IFEXISTS=TRUE
添加到网址:"jdbc:h2:file:data/sample;IFEXISTS=TRUE"
。但如果可以的话,请避免相对路径......