赤くできない場合は、おそらく期待した場所にありません。投稿したコードから判断すると、xml ファイルは jar/package 構造内に存在することを意図していると思います。
これは私のテストプロジェクトの構造です:
src
|-- main
|-- java
|-- mypackage
MyCode.java
MyResource.xml
対応する生成された jar ファイルはtarget/
directory にあり、次のようになります。
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 内からリソースをロードするために使用されます。それが役立つことを願っています。