对于那些从Eclipse迁移到IntelliJ或者反过来的人,这里有一个技巧,可用于处理属性文件或其他资源文件。
当你想要在IDE中本地运行或调试时,两个IDE在查找资源/属性文件方面的工作方式非常不同,这让人感到非常恼火(我花了整整一个晚上才发现)。 (打包成.jar文件也非常不同,但文档记录得更好。)
假设您的代码中有一个相对路径引用,就像这样:
new FileInputStream("xxxx.properties")
如果你使用环境特定的 .properties 文件,并且不想将其打包到 JAR 文件中,那么这是很方便的。
INTELLIJ
(我使用 13.1,但可能适用于更多版本)
在 IntelliJ 中,xxxx.properties 文件需要在项目根目录的父目录中才能在运行时被识别出来。 (项目根目录是 /src 文件夹所在的位置)
ECLIPSE
Eclipse 只需要 xxxx.properties 文件在项目根目录下即可。
因此,当像这样引用文件时,IntelliJ 希望 .properties 文件比 Eclipse 高一级!!
当你不想将 .properties 文件与 jar 文件一起打包时,这也会影响你执行代码的方式。为了正确地从命令行引用 .properties 文件,你需要像下面这样执行 jar:
在 INTELLIJ 导出的 JAR 中
java -cp "/path/to_properties_file/:/path/to_jar/some.jar" com.bla.blabla.ClassContainingMainMethod
导出 Eclipse JAR 文件
java -jar some.jar
Eclipse导出的可执行jar文件期望引用的.properties文件与.jar文件放在同一位置。