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

发布于 2024-12-01 18:38:48 字数 277 浏览 0 评论 0原文

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

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

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

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

I am actually loading OWL files in my java web app with the following code:

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

I created Dummy.class in the same package as content.owl is to get access to this file.

Is there a (refactor-safe) way to load content.owl directly without the need of a dummy class?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

脸赞 2024-12-08 18:38:48

我认为您应该能够通过根据放置编译文件的输出文件夹的位置给出资源的相对路径来从任何类获取该资源。

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

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

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

I think you should be able to get that resource from any class by giving relative path of it according to location of output folder where your compiled files are put.

For example initially the resource file in proj/src/a/b/content.owl package and the class I access this resource is in package proj/src/a/b/c/d/MyClass.java. After building the project my executables go under bin folder and the class I access the resource goes to proj/bin/a/b/c/d/MyClass.class directory and resource goes into proj/bin/a/b/content.owl.

And as bin folder is specified as the output folder in classpath of my project, I can access to resource with the code:

InputStream is = MyClass.class.getResourceAsStream("/a/b/content.owl");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文