2010-11-09 45 views
4

如何查找嵌入到jar中的xml(static myXml.xml)文件的路徑?顯然不是絕對的路徑,但我面臨着與相對路徑相同的問題。我無法獲取它相對於主文件夾,因爲Java返回不同的主文件夾,具體取決於我調用訪問Java類的位置。例如,從:如何在Java中解析靜態文件的路徑?

  • 命令提示符
  • 應用服務器
  • Eclipse啓動
  • Eclipse的遠程調試器等

有什麼方法,我的訪問類(裝在同一個JAR)可無論jar文件在哪裏以及誰試圖訪問它,訪問嵌入式xml?

回答

6

你需要做的是使用類加載器加載該文件:

InputStream stream = this.getClass().getClassLoader(). 
               getResourceAsStream("myXml.xml"); 

上面的代碼假定該文件是在您的罐子頂部水平。

+1

而對於靜態類MyClass.class.getResourceAsStream(「myXml.xml」)。有用。謝謝 – WSK 2010-11-09 17:54:55

0

你是否嘗試過類類中的getResource和getResourceAsStream方法?通常這些是我在這些情況下必須採取的措施。

希望這會有所幫助。

0

您可以使用ClassLoader#getResource(..)獲得從classpath的文件的InputStream:

Object.class.getClassLoader().getResource().openStream() 

還有一些在ClassLoader的一些其他的方法可能是你的情況是有用的。