如何找到嵌入jar的xml(静态myXml.xml)文件的路径?显然不是绝对的路径,但我面临着相对路径的同样问题。我无法得到它相对于主文件夹,因为Java返回不同的主文件夹,具体取决于我调用访问Java类的位置。例如,来自:
有没有我的访问类(打包在同一个jar中)可以访问嵌入式xml,无论jar文件存在于何处以及谁正在尝试访问它?
答案 0 :(得分:6)
您需要做的是使用类加载器加载文件:
InputStream stream = this.getClass().getClassLoader().
getResourceAsStream("myXml.xml");
上面的代码假定文件位于jar的顶层。
答案 1 :(得分:0)
您是否尝试过Class类中的getResource和getResourceAsStream方法?通常这些是我在这些情况下必须诉诸的。
希望这有帮助。
答案 2 :(得分:0)
您可以使用ClassLoader#getResource(..)从类路径中获取文件的InputStream:
Object.class.getClassLoader().getResource().openStream()
ClassLoader中还有一些其他方法可能对你的情况有用。