ClassLoader 在 Linux 上显示错误路径
ClassLoader shows wrong path on Linux
我正在使用 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
文件中读取。对于我做错了什么还有其他想法吗?
这不适用于 jar 文件中的资源,它不是文件系统上的文件。相反,您需要使用 getResourceAsStream()
,其中 returns 和 InputStream
可以直接使用:
InputStream in = someClass.getClassLoader().getResourceAsStream("/XMLS/file.xml");
我正在使用 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
文件中读取。对于我做错了什么还有其他想法吗?
这不适用于 jar 文件中的资源,它不是文件系统上的文件。相反,您需要使用 getResourceAsStream()
,其中 returns 和 InputStream
可以直接使用:
InputStream in = someClass.getClassLoader().getResourceAsStream("/XMLS/file.xml");