在一个位置具有访问数据库文件,以便可以在开发和分发时使用它

时间:2017-07-20 15:43:33

标签: java netbeans jar ucanaccess

虽然我已经做了很多研究,但我仍然在努力寻找放置访问数据库文件的正确位置,以便它可以与我的java项目和我的最终jar文件一起使用(无需更改每个案例的代码) 。

我可以将它放在工作目录中,并使用代码在NetBeans中工作时获取它。

DriverManager.getConnection("jdbc:ucanaccess://" + "res/mydatabase.accdb");

但是,当我运行jar文件时,这不起作用(我猜这是因为该文件夹位置不再是工作目录)。

到目前为止,我已经考虑了两种方法:

  • 要将数据库文件放在包中,以便在生成jar文件时,它就是其中的一部分。我已经看到这个工作的图像文件,但不适用于数据库。

    DriverManager.getConnection("jdbc:ucanaccess://" + getClass.getResources("/res/mydatabase.accdb").getFile());
    

    这不起作用。我还读到here,你无法直接从运行的JAR文件中嵌入的副本打开数据库文件。

  • 我也看到examples人们拥有绝对文件路径,但我不愿意,因为我需要在不同的计算机上工作。 (告诉我,如果这是一个更好的解决方案)

我的第一个问题是:我在哪里可以存储文件,以便在从NetBeans运行它时以及从jar文件运行它时可以找到它?

我的第二个问题是:我必须使用特定的代码行来从该位置访问它吗?

1 个答案:

答案 0 :(得分:1)

如果您正在寻找一个“真正的”文字路径(相对或绝对),它不仅可以用于开发,还可以用于部署到所有可能的目标平台,那么您可能希望得到太多。您可能需要考虑编写将导出(或提示)路径的代码,可能基于user.home系统属性。