ClassLoader在Linux上显示错误的路径

时间:2016-03-07 14:28:17

标签: java linux filenotfoundexception

我使用classLoader加载位于/src/XMLS下的xml文件:

String m_path = "XMLS/file.xml"

ClassLoader cl = getClass.getClassLoader();
file f1 = new file(cl.getResource(m_path).getFile));

在Windows上运行它运行正常但在导出到jar并在Linux上运行后我得到FileNotFoundException - /XMLS/file.xml。 我试过这个solutions,我不认为问题出在.jar文件的读取中。对于我做错了什么其他的想法?

1 个答案:

答案 0 :(得分:2)

这不适用于jar文件中的资源,该文件不是文件系统上的文件。相反,您需要使用getResourceAsStream(),它会返回InputStream直接使用:

InputStream in = someClass.getClassLoader().getResourceAsStream("/XMLS/file.xml");