2014-10-30 58 views
1

我的項目名稱爲'XMLparser'。在項目中有一個名爲'XML'的文件夾,其中包含文件'database.xml'當我嘗試獲取數據庫Java顯示錯誤的目錄時。Java中的父目錄

Java錯誤:

Exception in thread "main" java.lang.IllegalArgumentException: InputStream cannot be null 
    at javax.xml.parsers.DocumentBuilder.parse(Unknown Source) 
    at XMLparser.main(XMLparser.java:24) 

我試圖讓這個代碼目錄:

Document document = builder.parse(ClassLoader.getSystemResourceAsStream("../xml/database.xml")); 

項目樹:

XMLparser 
    src 
    - (default package) 
    - XMLparser.java (My code is here) 

    JRE System Library 

    xml 
    - database.xml (This is the xml file) 

什麼需要在這裏輸入ClassLoader.getSystemResourceAsStream(」 HERE「)工作?

+1

xml目錄位於您的類路徑之外。將其添加或移動到src目錄下。 – BarrySW19 2014-10-30 14:04:37

+0

我認爲你必須從路徑創建輸入流。因爲你試圖從nonRecource目錄調用getResource。如何獲得路徑在這裏解釋:http://stackoverflow.com/questions/16770384/parent-parent-directory-in-java – deathangel908 2014-10-30 14:05:36

回答

1

試試這個,如果你不會在你的 「SRC」 添加文件夾 「/xml/database.xml」:

final String workingDirectory = System.getProperty("user.dir"); 
final InputStream in = new FileInputStream(workingDirectory + "/xml/database.xml"); 
document = builder.parse(in); 
.. 

0

只需卸下第一部分是這樣的:

document = builder.parse(ClassLoader.getSystemResourceAsStream("xml/database.xml")); 

你的XML文件是在項目文件夾的根目錄這就是getSystemResourceAsStream看起來,如果我沒有弄錯。

+0

我測試它,但它不起作用 – GabrielAtan 2014-10-30 19:38:01

1

您無法進入應用程序的根文件夾