如何在导入的Java项目中加载文件?

时间:2012-01-18 17:40:07

标签: java file path project relative-path

我正在开发一个实现常见功能的Java项目。该项目使用一些xslt文件。实际上我使用相对路径“file / xslt”打开这些文件,这是有效的(我的文件系统中的默认路径是“/”位于“PLACE1”中,因此获得的路径是“PLACE1 / file / xslt”)。 / p>

然后我创建一个新项目,导入以前的项目并尝试使用它的功能,但显然这不起作用:在库中,所需xslt文件的相对路径是使用第二个的默认路径计算的project(位于我的文件系统中的“PLACE2”中,因此获取的路径为“PLACE2 / file / xslt”)。

如何管理此问题?

1 个答案:

答案 0 :(得分:1)

将xslt文件放在与使用它们的类相同的包中(或在项目的源根目录中),然后使用带有路径“file.xslt”或“/file.xslt”的Class.getResourceAsStream - 此方法搜索指定资源的类路径。

这样,当构建项目时,资源(例如这些xslt文件)将被复制到具有* .class文件的相应目录中,并相应地放在jar文件中。

例如,当类MyClass和文件1.xslt位于同一个包中时:

InputStream xsltIn = MyClass.class.getResourceAsStream ("1.xslt");

如果文件2.xslt在源根目录(默认的无名包)中:

InputStream xsltIn = MyClass.class.getResourceAsStream ("/2.xslt");