无法在 intellij idea 类路径中找到属性文件
Posted
技术标签:
【中文标题】无法在 intellij idea 类路径中找到属性文件【英文标题】:unable to find properties file in intellij idea classpath 【发布时间】: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 的问题有很多很好的答案:***.com/a/2308388/546117、***.com/a/12523396/546117、***.com/a/18508032/546117。希望他们会有所帮助。
感谢@EugeneEvdokimov,但问题是我的代码没有直接加载这个属性文件。我正在调用一些第三方 jar,而后者又试图加载此属性文件。所以我不能真正尝试改变文件的加载方式。我唯一需要确定的是它应该在类路径中。目前我已经将它添加到tomcat的lib文件夹中,但我需要一个永久的解决方案来解决这个问题。
【参考方案1】:
通常,将正确的目录标记为源目录确实可以解决问题,但我发现还有另一个重要的细节。您需要确保您的工作目录(可以在运行配置中找到)设置正确。在我的项目中,由于某种原因,它被设置为错误的目录,并且由于 Java 尝试在工作目录中查找 *.properties 文件(除非您在代码中指定绝对路径),所以我的属性中的 client.properties 不是没有找到 - 它只是不存在于“错误”的工作目录中。
附:我是一个经验不足的初级开发人员,这是我在这里的第一个答案,所以我可能没有完美和/或正确地描述所有内容,但我花了 2 多个小时试图弄清楚为什么我的属性文件没有加载,所以我希望这对处于同样困境的人有所帮助。快乐编码:)
【讨论】:
【参考方案2】:我发现您在查找文件名时不应该提及 .properties IF 文件是 abc.properties 然后只查找 abc 而不是 abc.properties
【讨论】:
以上是关于无法在 intellij idea 类路径中找到属性文件的主要内容,如果未能解决你的问题,请参考以下文章