0

我有一个通过 ant 构建的 jav aproject。它将类文件写入 output/classes/com/... 路径。我的一个 java 类需要从位于输出文件夹上方一级文件夹中的文件中读取输入流。看起来如果将文件复制到 outptu/classes 下的包文件夹中,它似乎可以工作。但是我不想将我的配置文件放在输出文件夹中,因为它会在我执行 ant clean 时被清理。我希望它在输出文件夹上方的配置文件夹中找到它并加载它。

public static final String CONFIG_FILE="/../../../../../../../Config.txt";

public static ConfigObj getConfigObj() throws IOException {

InputStream i=ConfigLoader.class.getResourceAsStream(CONFIG_FILE);

...

我想知道什么时候我想给 raltivepath,它应该是相对的。我试着查了一下,它说相对于类加载器。在这种情况下,类加载器是什么?它是我的 ConfigLoader.class 所在的 output/classes/com....../config 文件夹吗?

4

1 回答 1

1

问题是getResourceAsStream()只会从 classpath加载资源。我猜你只有在你的类路径上,所以如果配置文件在那个目录之外,output/classes你将永远无法加载配置文件。getResourceAsStream()将 aFile与指向文件的绝对路径一起使用,或将其放在类路径中。

于 2013-03-06T20:48:58.737 回答