如何在不使用虚拟类的情况下访问其他包中的文件

时间:2011-08-26 19:04:50

标签: java getresource

我实际上是在我的java web应用程序中使用以下代码加载OWL文件:

InputStream is = Dummy.class.getResourceAsStream("content.owl");

我在与Dummy.class相同的包中创建content.owl是为了访问此文件。

是否有(重构安全)方式直接加载content.owl而无需虚拟类?

1 个答案:

答案 0 :(得分:2)

我认为你应该能够从任何类中获取该资源,方法是根据编译文件所在的输出文件夹的位置给出相关路径。

例如,最初 proj / src / a / b / content.owl 包中的资源文件和我访问此资源的类在包 proj / src / a / b /中C / d / MyClass.java 即可。构建项目后,我的可执行文件在bin文件夹下,我访问资源的类转到 proj / bin / a / b / c / d / MyClass.class 目录,资源进入项目/bin/a/b/content.owl

由于 bin 文件夹被指定为项目类路径中的输出文件夹,我可以使用以下代码访问资源:

InputStream is = MyClass.class.getResourceAsStream("/a/b/content.owl");