在Eclipse IDE中运行java程序时的配置文件

在Eclipse IDE中运行java程序时的配置文件,java,eclipse,logging,Java,Eclipse,Logging,我有一个简单的java应用程序,它使用log4j.properties文件进行记录器配置。我把这个文件保存在bin文件夹中,记录器可以很好地读取它。但是它不是很方便,因为由于某种神秘的原因,Eclipse没有显示projectexplorer中的bin文件夹。在EclipseJava项目中放置配置文件的总体逻辑是什么?bin文件夹是否只有一个正确的位置?要查看bin文件夹: Customize View -> Filters 取消选中Java输出文件夹 您不应将文件保存在bin文件

我有一个简单的java应用程序,它使用
log4j.properties
文件进行记录器配置。我把这个文件保存在
bin
文件夹中,记录器可以很好地读取它。但是它不是很方便,因为由于某种神秘的原因,
Eclipse
没有显示
projectexplorer
中的
bin
文件夹。在EclipseJava项目中放置配置文件的总体逻辑是什么?bin文件夹是否只有一个正确的位置?

要查看bin文件夹:

 Customize View -> Filters 

取消选中Java输出文件夹


您不应将文件保存在
bin
文件夹中。
bin
文件夹本质上是暂时的-如果有人对项目执行
clean..
操作,它将被删除。将文件保存在
src
文件夹(或任何源文件夹)中。当项目内置时,将自动复制到
bin
文件夹


除了更改Project Explorer视图的视图选项外,您还可以使用eclipse的
导航器查看所有文件夹。

通常在使用eclipse(或其他构建工具)时,您尽量不要触摸
bin
文件夹。如果扔掉它,重新构建项目应该完全重建
bin
文件夹


Eclipse通过自动将文件从源文件夹复制到bin文件夹来实现这一点。您可以将
log4j.properties
放在
src
文件夹中(通过选择并按F5刷新eclipse中的文件夹)。然后,您可以在系统文件浏览器中看到它已自动放置在
bin
文件夹中。您在eclipse中所做的任何更改都会自动复制到bin文件夹,eclipse之外的更改需要刷新。请注意,如果您已启用“自动生成”选项,则需要进行生成以实现此目的


或者,您可以创建一个新的“源文件夹”,并将其仅用于配置文件。为此,在项目中创建一个普通文件夹,然后在包资源管理器中右键单击它。选择“生成路径”->“用作源文件夹”

严格来说,属性文件(以及任何其他资源文件)必须位于源代码目录中:

  • 在常规Java项目中,位于
    src
    文件夹(或子文件夹)中
  • 在Maven项目中,在
    src/main/resources
    src/test/resources
    文件夹(或子文件夹)中
通过这种方式,Eclipse将在构建项目时将所有资源文件复制到输出文件夹(
bin
,在通用Java项目上)

不建议手动管理输出文件夹中的文件,因为Eclipse会在每个构建中覆盖这些文件


输出文件夹的内容被隐藏是出于一个实际原因:这些内容是由Eclipse生成的,而不是由程序员生成的;程序员不应该关心它们。在项目视图和包视图中也是如此。但是您始终可以在navigator视图中看到所有文件夹。

您可以放置在任何位置或任何文件夹中,但是上下文应该可用于您的eclipse IDE,即构建路径我们在项目文件夹中有我们的log4j.properties(就在src文件夹的旁边)“您从eclipse所做的任何更改都会自动复制到bin文件夹”。。。只要你使用“自动生成”选项。@LittleSanti很好的观点,把它添加到了答案中。请注意,这在默认情况下是打开的。我已将*.properties和*.ini文件放在srs目录中。生成后,仅将*.properties复制到bin文件夹。如何要求Eclipse也复制ini文件?如果您不更改任何设置,它应该将所有非java文件从
src
复制到
bin
。在“生成路径/源”选项卡下检查是否排除了任何文件。只需做一个干净的构建并再次检查。干净+构建解决了问题。但是还有一个。我将jar库放在/lib/中,它使用放在项目根目录中的属性文件。当我将属性文件移动到/src和buil+run时,我发现库并没有找到自动复制到/bin的属性。当props位于root-runs中时,project root是运行程序的工作目录(默认情况下)。您可以将这些文件保留在根目录中。我的答案只与
bin
文件夹有关。