将属性文件添加到IntelliJ的类路径

Ton*_*nis 116 java classpath intellij-idea

我正在使用Run-> Run菜单从IntelliJ IDE运行一个简单的Java程序.它工作正常.现在我想添加log4j日志记录.

我在项目根目录下添加了一个资源文件夹.我在该文件夹中添加了一个log4j.properties文件.我更改了代码以记录某些内容.

告诉IntelliJ在类路径中包含resources文件夹以便看到属性文件的正确方法是什么?

使用IntelliJ 8,我可以猜到像醉猴一样,并最终让它工作.我现在有9个,而且我完全不成功.我已经尝试了一个小时.在某处"添加到类路径"选项怎么样?/烟/发泄/咆哮

Col*_*inD 85

试试这个:

  • 转到项目结构.
  • 选择你的模块.
  • 在右侧的树中找到该文件夹​​并选择它.
  • 单击该树上方的"源"按钮(使用蓝色文件夹),使该文件夹成为源文件夹.

  • 检查编译器设置中的资源模式.检查那里是否有"?*.properties".它默认存在,但这是我能想到的另一件事. (29认同)
  • 请注意,如果您是从Maven POM创建项目而不是ad-hoc源结构,则此解决方案将不起作用.相反,您需要将该目录作为资源添加到POM.请参阅Peter Thygesen的回答. (10认同)
  • Sourcesbutton的替代方案 - 右键单击​​您创建的任何目录,然后选择"Mark Directory As":"Source Root" (3认同)

Cra*_*der 47

实际上,您至少有两种方法可以做到,第一种方式是由ColinD描述的,您只需将"resources"文件夹配置为IDEA中的Sources文件夹即可.如果资源模式包含资源的扩展,那么当您使项目和输出目录自动成为应用程序的类路径时,它将被复制到输出目录.

另一种常见方法是直接将"resources"文件夹添加到类路径中.转到项目结构| 模块| 你的模块| 依赖关系,单击添加,单条目模块库,指定"资源"文件夹的路径.

另一种解决方案是将log4j.properties文件直接放在项目的Source根目录下(在默认包目录中).它与第一种方式相同,除了您不需要在Module Paths设置中添加另一个Source根,该文件将被复制到Make上的输出目录.

如果要使用不同的log4j配置进行测试,可能更容易直接在运行/调试配置中指定自定义配置文件,VM参数如下:

-Dlog4j.configuration=file:/c:/log4j.properties.


小智 41

我有同样的问题,它让我非常恼火!

我一直认为我喜欢回答2.过去常常在Intellij 9中工作(现在使用10).

但是我想通过将这些行添加到我的maven pom文件中有助于:

<build>
  ...
  <resources>
    <resource>
      <directory>src/main/resources</directory>
    </resource>
  </resources>
  ...
</build>
Run Code Online (Sandbox Code Playgroud)


Jul*_*ius 16

我花了很多时间在Intellij 13x中弄清楚如何做到这一点.我显然从未将属性文件添加到需要它们的工件中,这是Intellij中的一个单独步骤.当您拥有由多个模块共享的属性文件时,以下设置也适用.

  • 转到项目设置(CTRL + ALT + SHIFT + S)
  • 在列表中,选择要添加一个或多个属性文件的模块.
  • 在右侧,选择"依赖关系"选项卡.
  • 单击绿色加号并选择"Jars或目录".
  • 现在选择包含属性文件的文件夹.(我没有尝试包含单个文件)
  • Intellij现在将询问您所选文件的"类别"是什么.选择"类"(即使它们不是).
  • 现在,您必须将属性文件添加到工件中.Intellij将为您提供如下所示的快捷方式.它将在底部的红色部分显示错误,并且单击"红色灯泡"时会显示将文件添加到工件的选项.您还可以转到"工件"部分,手动将文件添加到工件中.

在此输入图像描述


pro*_*ype 13

面对类似的挑战,在类路径中添加.ini扩展名的文件. 找到这个答案,即将它添加到首选项 - >编译器 - >资源模式 - > [...];*.ini


use*_*174 5

如果您最终遇到 Scala 和 SBT 相同的问题:

  • 转到项目结构。快捷键是 (CTRL + ALT + SHIFT + S)

  • 在最左侧的列表中,选择 Project Settings > Modules

  • 在右侧的模块列表中,选择项目名称的模块(不包括构建)并选择源选项卡

  • 在中间,展开我的项目根目录 /home/<username>/IdeaProjects/<projectName>

  • 查看右侧的Content Root 部分,红色路径是您尚未创建的目录。您需要将属性文件放在 Resources 目录中。所以我创建了src/main/resourceslog4j.properties 并将其放入其中。我相信您也可以修改 Content Root 以将其放在您想要的任何位置(我没有这样做)。

  • 我用 SBT 配置运行了我的代码,它找到了我的 log4j.properties 文件。

在此处输入图片说明