2014-10-30 62 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

您无法进入应用程序的根文件夹