如何查找嵌入到jar中的xml(static myXml.xml)文件的路径?显然不是绝对的路径,但我面临着与相对路径相同的问题。我无法获取它相对于主文件夹,因为Java返回不同的主文件夹,具体取决于我调用访问Java类的位置。例如,从:如何在Java中解析静态文件的路径?
- 命令提示符
- 应用服务器
- Eclipse启动
- Eclipse的远程调试器等
有什么方法,我的访问类(装在同一个JAR)可无论jar文件在哪里以及谁试图访问它,访问嵌入式xml?
如何查找嵌入到jar中的xml(static myXml.xml)文件的路径?显然不是绝对的路径,但我面临着与相对路径相同的问题。我无法获取它相对于主文件夹,因为Java返回不同的主文件夹,具体取决于我调用访问Java类的位置。例如,从:如何在Java中解析静态文件的路径?
有什么方法,我的访问类(装在同一个JAR)可无论jar文件在哪里以及谁试图访问它,访问嵌入式xml?
你需要做的是使用类加载器加载该文件:
InputStream stream = this.getClass().getClassLoader().
getResourceAsStream("myXml.xml");
上面的代码假定该文件是在您的罐子顶部水平。
你是否尝试过类类中的getResource和getResourceAsStream方法?通常这些是我在这些情况下必须采取的措施。
希望这会有所帮助。
您可以使用ClassLoader#getResource(..)获得从classpath的文件的InputStream:
Object.class.getClassLoader().getResource().openStream()
还有一些在ClassLoader的一些其他的方法可能是你的情况是有用的。
而对于静态类MyClass.class.getResourceAsStream(“myXml.xml”)。有用。谢谢 – WSK 2010-11-09 17:54:55