如果它不能是红色的,那么它很可能不是您期望的位置。从您发布的代码来看,我想您的 xml 文件旨在驻留在您的 jar/包结构中。
这是我的测试项目结构:
src
|-- main
|-- java
|-- mypackage
MyCode.java
MyResource.xml
对应生成的 jar 文件位于target/
目录下,如下所示:
mypackage
MyCode.class
MyResource.xml
MyResource.xml
看起来像这样:
<a>b</a>
MyCode.java
看起来像这样:
public class MyCode {
public static void main(String[] args) throws Exception {
String packagePath= "/mypackage/MyResource.xml";
String myPath ="src/main/java"+packagePath;
File f = new File(myPath);
System.out.println(f.exists());
InputStream is = Class.class.getResourceAsStream(packagePath);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document d = db.parse(is);
System.out.println(d.getElementsByTagName("a").item(0).getTextContent());
}
}
运行时打印:
true
b
方法getResourceAsStream用于从 JAR 中加载资源。希望有帮助。