将相对目录添加到java类路径并使用ClassLoader()。getResourceAsStream(“”)

时间:2009-05-09 02:25:15

标签: java directory classpath classloader

是否可以将相对目录(即foo / bar / plugh)添加到java类路径并使用

InputStream in = getClassLoader().getResourceAsStream("xyzzy.properties");

要获取foo / bar / plugh / xyzzy.properties?

我的类路径如下所示:

foo.jar;foo/bar/plugh;xyz.jar 

我可以使用foo和xyz jar中的类和资源,但不能使用plugh目录。在这些情况下,in始终为空。

我无法让这个工作,我不确定这是否只是不支持,我错过了一些微妙的或我做错了什么。我需要使用绝对路径吗?

1 个答案:

答案 0 :(得分:6)

也许我误解了你要做的事情,但是如果你的类路径中有一个文件夹,这意味着它下面的所有文件也应该在类路径中。如果没有,您始终可以在类路径上传递每个.properties文件。

但不管怎样,由于包含该文件的文件/文件夹位于类路径中,您应该可以这样做:

InputStream in = new FileInputStream("classpath:xyz.properties")

由于“foo / bar / plugh”位于类路径中,因此xyz.properties所在的位置之一位于“foo / bar / plugh”。