Для тех из вас, кто переходит с Eclipse на IntelliJ или наоборот, здесь есть совет при работе с файлами свойств или другими файлами ресурсов.
Это сводит с ума (мне потребовался целый вечер, чтобы выяснить это), но обе IDE работают по-разному, когда дело доходит до поиска файлов ресурсов / свойств, когда вы хотите запускать локально из своей среды IDE или во время отладки. (Упаковка в .jar тоже совсем другая, но это лучше документировано.)
Предположим, у вас есть относительный путь в вашем коде:
new FileInputStream("xxxx.properties");
(что удобно, если вы работаете с файлами .properties, специфичными для env, которые вы не хотите упаковывать вместе с JAR)
IntelliJ
(Я использую 13.1, но может быть действителен для других версий)
Файл xxxx.properties должен находиться в каталоге PARENT проекта ROOT, чтобы его можно было подобрать во время выполнения, как это в IntelliJ. (В проекте ROOT находится папка / src)
ЗАТМЕНИЕ
Eclipse просто счастлив, когда файл xxxx.properties находится в самом ROOT проекта.
Итак, IntelliJ ожидает, что файл .properties будет на 1 уровень выше, чем Eclipse, когда на него ссылаются так !!
Это также влияет на способ выполнения вашего кода, когда у вас есть такая же строка кода (new FileInputStream ("xxxx.properties");) в вашем экспортированном .jar. Если вы хотите быть гибкими и не хотите упаковывать файл .properties вместе с jar-файлом, вам придется выполнить jar-файл, как показано ниже, чтобы правильно ссылаться на файл .properties из командной строки:
INTELLIJ EXPORTED JAR
java -cp "/path/to_properties_file/:/path/to_jar/some.jar" com.bla.blabla.ClassContainingMainMethod
ЭКСПОРТНАЯ БАНКА ECLIPSE
java -jar some.jar
где экспортированный исполняемый jar-файл Eclipse будет ожидать, что указанный файл .properties находится в том же месте, что и файл .jar