虽然我已经做了很多研究,但我仍然在努力寻找放置访问数据库文件的正确位置,以便它可以与我的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文件运行它时可以找到它?
我的第二个问题是:我必须使用特定的代码行来从该位置访问它吗?
答案 0 :(得分:1)
如果您正在寻找一个“真正的”文字路径(相对或绝对),它不仅可以用于开发,还可以用于部署到所有可能的目标平台,那么您可能希望得到太多。您可能需要考虑编写将导出(或提示)路径的代码,可能基于user.home系统属性。