java - 将相对目录添加到 java 类路径并使用 ClassLoader().getResourceAsStream ("")

标签 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 始终为 null。

我无法让它工作,我不确定这是否不受支持,我遗漏了一些微妙的东西或者我做错了什么。我需要使用绝对路径吗?

最佳答案

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

但无论哪种方式,因为包含文件的文件/文件夹在类路径中,你应该能够做到:

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

因为“foo/bar/plugh”在类路径中,所以它将查找 xyz.properties 的地方之一是“foo/bar/plugh”。

关于java - 将相对目录添加到 java 类路径并使用 ClassLoader().getResourceAsStream (""),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/842538/

相关文章:

java - 具有并发 put/get 的 EnumMap

linux - root创建的所有文件都被写保护

linux - antiword 在托管服务器上不起作用

directory - PROGRESS - 验证用户输入文件输出路径

Java CLASSPATH 不起作用?

java - 如何用方法注入(inject)替换装饰器中的构造函数注入(inject)以获得链接并使现有代码按原样工作?

java - 如何调整窗口大小以使所有组件可见

java - 如何修复 .flex 文件的语法问题?

java - 如何在 Eclipse 中使用外部 .class 文件?

java - 为什么类路径默认为 WEB-INF/classes/而不是 JBoss 5.1 中的 WEB-INF/?