【问题标题】:unable to find properties file in intellij idea classpath无法在 intellij idea 类路径中找到属性文件
【发布时间】:2014-03-26 19:48:31
【问题描述】:

我过去 2 个小时只是为了在我的 IntelliJ IDEA 类路径中添加一个属性文件。我是一个 Eclipse 用户,发现我无法在 IDEA 中做到这一点很尴尬。我的 IntelliJ IDEA 项目中有一个 .properties 文件,它已添加到类路径中,但在运行时我仍然收到文件不存在的异常。

我已经关注了这个问题Add a properties file to IntelliJ's classpath的所有答案

我做了以下事情:-

1) 转到项目结构。 选择您的模块。 在右侧的树中找到文件夹并选择它。 单击该树上方的 Sources 按钮(带有蓝色文件夹),使该文件夹成为源文件夹。

2)我检查了 settings->compiler->resource patterns 有 ?*.properties 的条目

3) 我在 pom.xml 中添加了以下标签

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
</build>

有人可以帮我吗?

进一步更新。这是一个 Maven Web 应用程序项目。我正在尝试访问我的 servlet 中的 .properties 文件。我的 servlet 位于 src/main/java/some_package 中,我的 .properties 文件位于 src/main/resources/some_package 中。

try {

        Properties prop = new Properties();
        InputStream input = null;

        try {

            input = new FileInputStream("package\\myProperty.properties");

            // load a properties file
            prop.load(input);

            // get the property value and print it out
            System.out.println("reading the property file " );
            System.out.println("prop1 =" + prop.getProperty("prop1"));
            System.out.println("prop2 = " + prop.getProperty("prop2"));


        } catch (IOException ex) {
            ex.printStackTrace();
        } finally {
            if (input != null) {
                try {
                    input.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

【问题讨论】:

  • 有人可以在这里帮忙吗?这不应该这么难:(
  • 您能否提供更多有关该错误的信息以及如何在运行时使用您的properties 文件。我的意思是一些代码示例、配置和异常堆栈跟踪。
  • @EugeneEvdokimov - 我添加了更多细节。请检查。
  • 如果你使用Maven构建项目,结果不应该依赖于你工作的IDE,无论是Eclipse还是IDEA。关于 SO 的问题有很多很好的答案:stackoverflow.com/a/2308388/546117stackoverflow.com/a/12523396/546117stackoverflow.com/a/18508032/546117。希望他们会有所帮助。
  • 感谢@EugeneEvdokimov,但问题是我的代码没有直接加载这个属性文件。我正在调用一些第三方 jar,而后者又试图加载此属性文件。所以我不能真正尝试改变文件的加载方式。我唯一需要确定的是它应该在类路径中。目前我已经将它添加到tomcat的lib文件夹中,但我需要一个永久的解决方案来解决这个问题。

标签: intellij-idea properties-file


【解决方案1】:

通常,将正确的目录标记为源目录确实可以解决问题,但我发现还有另一个重要的细节。您需要确保您的工作目录(可以在运行配置中找到)设置正确。在我的项目中,由于某种原因,它被设置为错误的目录,并且由于 Java 尝试在工作目录中查找 *.properties 文件(除非您在代码中指定绝对路径),所以我的属性中的 client.properties 不是没有找到 - 它只是不存在于“错误”的工作目录中。

附:我是一个经验不足的初级开发人员,这是我在这里的第一个答案,所以我可能没有完美和/或正确地描述所有内容,但我花了 2 多个小时试图弄清楚为什么我的属性文件没有加载,所以我希望这对处于同样困境的人有所帮助。快乐编码:)

【讨论】:

    【解决方案2】:

    我发现您在查找文件名时不应该提及 .properties IF 文件是 abc.properties 然后只查找 abc 而不是 abc.properties

    【讨论】:

      猜你喜欢
      • 2017-12-14
      • 2023-04-10
      • 1970-01-01
      • 2011-04-15
      • 2015-09-19
      • 1970-01-01
      • 2012-04-13
      • 2012-11-01
      • 1970-01-01
      相关资源
      最近更新 更多