5

我刚刚开始第一次使用 Log4J。我创建了一个 log4j.properties 文件并将其放在 Eclipse 中我的项目文件夹中。我还为我的应用程序创建了一个运行配置(它只是一个默认的运行配置,没有额外的选项)。

现在,我尝试运行应用程序,但收到一条关于 log4j 无法自行初始化的错误消息(读取属性文件)。我知道属性文件必须在类路径中,所以显然运行配置没有正确设置类路径。

如果我转到我的运行配置的 Classpath 选项卡,我有以下内容:

  • 引导条目
  • 用户条目
    • MyApplication(默认类路径)
    • log4j-1.2.15.jar - C:\Workspace\MyApplication\lib

但是,如果我手动添加我的项目文件夹(我单击添加文件夹、高级、MyApplication),log4j 将能够自行初始化。

为什么呢?为什么 log4j 找不到属性文件,除非我手动添加项目的文件夹?默认情况下,这个文件夹不是在类路径中吗?(上面的输出表明它是。)

4

3 回答 3

3

不,默认情况下,项目文件夹本身不在类路径中 - 项目的输出文件夹在(通常是一个名为 bin 或 classes 的子文件夹)。

如果您将 log4j.properties 放入项目的源文件夹而不是其根文件夹,那么一切都应该正常工作(源文件夹中的非源文件会自动复制到输出文件夹)。

通常,您不必弄乱运行配置的类路径 - 在大多数情况下,更改(或在您的情况下正确使用)项目属性中的构建路径更合适。

于 2009-06-16T10:06:00.637 回答
1

默认情况下,项目文件夹不会添加到类路径中。默认情况下,类路径仅包含类文件夹。

您必须手动将任何其他文件夹添加到类路径中。

于 2009-06-16T10:04:47.037 回答
0

你有两个选择:

  • 将 log4j.properties 文件放在 src 文件夹下
  • 创建一个额外的源文件夹,通常命名资源或资源,并将 log4j.properties 文件放在那里

它现在不起作用的原因是该文件不在项目的类路径中。您可以从 Project > Properties > Java Build Path 查看类路径

于 2009-06-16T10:05:28.113 回答