2016-11-25 73 views
0

我對編程完全陌生,現在我正在做一個項目,我需要在java中讀取特定的XML文件。我的代碼是使用我需要的文件的絕對路徑,但我必須將項目分發到某處。所需的XML文件不會在項目文件夾中,而是在另一個文件夾中,我將使用項目的JAR文件進行分發。如果我不知道用戶在哪裏放置我的程序和包含XML文件的文件夾,是否有可能獲得該路徑?有關java項目分發的問題

該程序應該在Windows上運行。

+0

露出它檢索文件?您可以隨時查找FileChooserDialog(或類似的東西),讓用戶指向文件。但你可以隨時將你的jar文件分發到壓縮包(zip)中,用xml – AxelH

+0

你需要在代碼中向用戶詢問他們在哪裏放置xml文件! –

+0

這正是您應該避免使用硬編碼絕對路徑的原因。如果文件位於jar外部,或者使用類資源的相對路徑(如果xml位於jar文件中),則使用文件的相對路徑。這個問題已經在這個網站上被多次詢問和回答,並且您需要搜索這個網站來查看這些重複內容。 –

回答

0

你有不同的解決方案:

  • 傳遞文件的位置作爲參數傳遞給main方法(如果你有一個main方法)
  • 設置system property與文件的位置(你可以做與所述-D選項上java命令,與語法-Dproperty=value
  • 設置環境變量(與在linux export命令)
  • 把文件中的類路徑,並與getResourceAsStream
  • 訪問從外部服務器是否使用一個接口(擺動或其他方式)通過HTTP
+1

別忘了環境變量'System.getenv(String)' –

+0

@CarlosHeuberger也添加了這個選項thx –