【发布时间】:2012-10-09 10:27:12
【问题描述】:
我有一个用例,我需要将这段特定的代码导出为 java 库(最终将是一个 JAR),但问题是它需要使用存储在文件上的物理文件中的一些信息系统。
我有两个问题:
1) 我应该将这些文件放在文件系统的什么位置(我能想到的一个选项是在包含库的 Java 模块的资源目录中:尽管资源目录也被编译到 jar 中,但有疑问吗? )
2) 当我从外部 Java 应用程序使用此库时,该库如何能够找到文件?他们还会在类路径中吗?
【问题讨论】:
-
这是什么文件?配置文件?是否应该覆盖此文件?
-
不清楚您是想用 JAR 移动文件(使用
getResourceAsStream)还是文件独立于 JAR(在用户可编辑的 .properties 中指定路径 /将其作为启动参数传递,由注销回答) -
@Pierre-HenriToussaint - 是的,你可以把它当作一个配置文件,但我想在这里问的一点是:让我们把它限制在我有需要暴露的类的 jar 中各种应用。这些类需要访问这些配置文件(这些是固定的,独立于使用这些类的应用程序)。当这个 jar 被导入到应用程序中,并且应用程序尝试使用上述 jar 中的一个类来尝试从配置文件中检索一些信息时,一切都会正常工作而没有任何类路径问题吗?
-
如果“配置文件”不是 java 类,也不是用于以某种自定义方式定义 java 依赖项 - 您不会遇到任何类路径问题。
标签: java file-io jar static-libraries