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

问题描述:

尽管我已经做了大量的研究,但我仍然在努力寻找放置我的访问数据库文件的正确位置,以便它可以与我的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文件?

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

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