使用类加载器访问其他文件夹

时间:2013-05-20 13:25:35

标签: java classloader

 URL root = Thread.currentThread().getContextClassLoader().getResource(packageName.replace(".", "/"));

我使用上面的语句来获取给定包名的.class文件。但在某些情况下,我需要从 \ build \ test \ classes 而不是 \ build \ classes 访问文件。我如何修改上述声明?

1 个答案:

答案 0 :(得分:1)

您遇到类路径问题。 ${project}/build/test/classes${project}/build/classes文件夹建议您使用Ant编译代码,或者在Eclipse的“New Java Project”对话框中选中“允许源文件夹的输出文件夹”选项

您应该将项目配置为将所有源文件编译到同一输出文件夹中,例如/build/classes

如果您使用类加载器加载资源,那么您提供的路径对于整个文件系统来说并不是绝对的,即使它以/开头。

InputStream is = this.getClass().getResourceAsStream("/some/resource");

这实际上意味着找到此文件${project}/build/classes/some/resource。 为了在目标位置获取该资源,最简单的方法是将其放在${project}/src/some/resource

如果使用Eclipse,你应该考虑使用Maven和m2eclipse。