2017-07-20 66 views
2

儘管我已經做了大量的研究,但我仍然在努力尋找放置我的訪問數據庫文件的正確位置,以便它可以與我的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

如果您正在尋找不僅適用於開發,而且適用於部署到所有可能的目標平臺的「真實」文字路徑(相對或絕對),那麼您可能希望得到太多。您可能需要解決編寫將導出(或提示)路徑的代碼,可能基於user.home系統屬性。

相關問題