非Java源“在类路径上”?

时间:2012-02-10 18:01:59

标签: java classpath

在工作中,我们的Java应用程序使用各种非Java“源”(输入)文件(XML,属性文件等)进行运行时配置。

我听说同事使用“ classpath 上的log4j.properties”这样的措辞吗?

很明显,他们的意思是:可以Java“看到”资源吗?如果我们谈论的是本地运行的代码(在Eclipse内部),那么这些文件必须位于某个位置Eclipse工作台可以找到它们。如果我们谈论从CI服务器自动构建项目,那么在该服务器上运行的Ant必须能够查找/查看这些资源。

我的问题:这是非Java源代码的正确Java术语,还是这只是我工作地点使用的习惯用法?如何不是类< / em>存在于路径上?!?

2 个答案:

答案 0 :(得分:2)

不,它们确实意味着(并且非常正确)类路径,它是JVM搜索类以及图像和配置文件等资源的目录或JAR文件的集合通过Class.getResourceAsStream()等机制访问。

这实际上是为Java应用程序部署资源的首选方法,因为它不需要配置应用程序以便它可以找到资源,也不依赖于应用程序的“安装目录”(这不是Java世界中流行的概念,因为当你的应用程序在app服务器上运行时,它有点糊涂了。)

答案 1 :(得分:0)

类路径只是JVM在尝试解析资源时查看的路径集合,无论它是否是源文件。如果你看一下它所说的Java documentation for resources

  

...查找系统资源可能涉及搜索CLASSPATH中的条目

所以我认为“在CLASSPATH上是这样的资源是完全有效的吗?”此外,它得到了重点,我想不出更好的方式来提问。