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