【发布时间】:2011-11-27 23:21:22
【问题描述】:
我正在尝试使用Class.getResource("rsc/my_resource_file.txt") 在 Eclipse 应用程序中加载文件。但是,无论我在 Eclipse 中做什么,类路径始终只包含一个 Eclipse 启动器条目:
.../eclipse/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.pkc
如何配置类路径?
注意:在运行时,我使用以下代码确定类路径:
URLClassLoader cl = (URLClassLoader) ClassLoader.getSystemClassLoader();
for (URL classpathURL : cl.getURLs()) {
System.out.println(classpathURL);
}
编辑:更多信息。
问题的根源在于 Class.getResource("rsc/my_resource_file.txt") 返回 null。在一个简单的 5 行“Java 应用程序”中做了一些小实验后,我想我已经弄清楚了,问题与类路径有关。显然,类路径的行为与“Eclipse 应用程序”略有不同。我通过 Class.getResource("/rsc/my_resource_file.txt")Thanks BalusC 解决了这个问题。
【问题讨论】:
-
你能退一步吗?您的具体问题是资源返回
null,对吗?你确定它的路径是对的吗?正如您所拥有的,它与当前类的包相关。路径不应该以/开头以相对于包根目录吗?至少,Eclipse 启动器不应该归咎于此。 -
@BalusC - 你是对的,我原以为 / 将是文件系统上的绝对路径。如果您给出这个答案,我会接受。
-
我发布了一个答案。类路径不能与本地磁盘文件系统混淆。
-
我遇到了类似的问题。我基本上创建了一个指向另一个项目的链接,该链接已添加到类路径中。然后我输入“projectname/resourceFile.txt”而不是“resourceFile.txt”。哎呀。