我有一个名为 MyProject 的 Java 项目。我有几个不同的包(为了这个问题的目的保持名称简单),如下所示:
src/PackageA
src/PackageA/PackageAa
src/PackageA/PackageAa/PackageAaa
src/PackageB
src/PackageB/PackageBa
src/PackageB/PackageBa/PackageBaa
我有课
src/PackageA/PackageAa/PackageAaa/MyJavaFile.java
我有一张图片
src/PackageB/PackageBa/PackageBaa/MyImage.png
在 MyJavaFile.java
中,我想声明一个 MyImage.png
的图像对象
Image img = new Image(....what goes here?...)
我该怎么做?
最佳答案
您可以调用 Class.getResource
并指定以 /
开头的路径,或者 ClassLoader.getResource
而不必理会 /
:
URL resource = MyJavaFile.class
.getResource("/PackageB/PackageBa/PackageBaa/MyImage.png");
或:
URL resource = MyJavaFile.class.getClassLoader()
.getResource("PackageB/PackageBa/PackageBaa/MyImage.png");
基本上 Class.getResource
将允许您指定与类相关的资源,但我不认为它允许您使用“..”等目录导航。
当然,如果你知道正确包中的类,你可以使用:
URL resource = SomeClassInPackageBaa.class.getResource("MyImage.png");
(我假设您可以将 URL
传递给相关的 Image
构造函数。Class 上还有
和 getResourceAsStream
ClassLoader
。)
关于java - 从不同包中的类加载包内的 Java 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12153590/