Для тех из вас, кто мигрирует из Eclipse в IntelliJ или наоборот, есть совет при работе с файлами свойств или другими файлами ресурсов.
Это сводит с ума (чтобы выяснить это, я потратил целый вечер)но обе IDE работают совершенно по-разному, когда дело доходит до поиска файлов ресурсов / Propertty, когда вы хотите запускать локально из вашей IDE или во время отладки.(Упаковка в .jar также совсем другая, но это лучше документировано.)
Предположим, в вашем коде есть относительный путь, подобный следующему:
new FileInputStream("xxxx.properties");
(что удобно, есливы работаете с конкретными файлами .properties env, которые вы не хотите упаковывать вместе с вашим JAR)
INTELLIJ
(я использую 13.1, но может быть действительным для других версий)
Файл xxxx.properties должен находиться в каталоге PARENT проекта ROOT, чтобы его можно было подобрать во время выполнения, например, в IntelliJ.(В ROOT проекта находится папка / src)
ECLIPSE
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 EXPORTED JAR
java -jar some.jar
, где экспортированный исполняемый файл Eclipse просто ожидает, что указанный файл .properties будет находиться в том же месте, что и файл .jarесть