2014-12-23 248 views
2

我有一個文件夾結構,如:相對路徑不工作

myDir 
    resources 
    myConfig.cfg 

    in 
    infile.txt 

    myProgram.jar -->runnable jar file 

我嘗試使用相對路徑./in/infile.txt 我從myConfig.cfg提這些相對路徑。

在代碼中,我使用像,

Properties properties = new Properties(); 
properties.load(new FileInputStream("./resources/myConfig.cfg")); 

什麼錯誤? 對另一個罐子和相同的路徑也一樣。

+0

您是否獲得任何異常感動? – KostasC

+0

是的。像往常一樣FileNotFoundException。我嘗試了不同的相對路徑,如./,.../..,.. /等。 ./in/infile.txt完美適用於另一個進程。 – Harbinger

回答

2

試試這個

properties.load(this.getClass().getResourceAsStream("/myConfig.cfg")); 

其實當不使用編譯的資源文件夾,但是所有的資源文件在「類」目錄

+0

我希望將配置文件保留在jar外面,以便在需要時進行編輯。我怎樣才能做到這一點? – Harbinger

+0

其實,我在訪問infile.txt時遇到了問題。配置文件正在讀取正常。使用我使用的代碼,即使在創建jar之後,我也可以編輯它。 (如果使用配置文件,則更正我的錯誤信息)。 – Harbinger

+0

使用外部文件很好,但要獲得新的值,您必須重新啓動應用程序或添加一種刷新配置 – StanislavL