Para quem migra do Eclipse para o IntelliJ ou o contrário, é uma dica ao trabalhar com arquivos de propriedades ou outros arquivos de recursos.
É enlouquecedor (custa uma noite inteira para descobrir), mas o trabalho do IDE é bem diferente quando se trata de procurar arquivos de recursos / propriedades quando você deseja executar localmente a partir do IDE ou durante a depuração. (Empacotar em um .jar também é bem diferente, mas isso é melhor documentado.)
Suponha que você tenha uma referência de caminho relativa como esta em seu código:
new FileInputStream("xxxx.properties");
(o que é conveniente se você trabalha com arquivos .properties específicos da env que não deseja empacotar junto com seu JAR)
INTELLIJ
(Eu uso 13.1, mas poderia ser válido para mais versões)
O arquivo xxxx.properties precisa estar no diretório PARENT do projeto ROOT para ser coletado em tempo de execução como este no IntelliJ. (O projeto ROOT é o local onde a pasta / src reside)
ECLIPSE
O Eclipse fica feliz quando o arquivo xxxx.properties está no próprio projeto ROOT.
Portanto, o IntelliJ espera que o arquivo .properties seja 1 nível mais alto que o Eclipse quando for referenciado dessa maneira !!
Isso também afeta a maneira como você deve executar seu código quando possui a mesma linha de código (novo FileInputStream ("xxxx.properties");) em seu .jar exportado. Quando você quer ser ágil e não deseja empacotar o arquivo .properties com seu jar, será necessário executá-lo como abaixo para fazer referência ao arquivo .properties corretamente na linha de comando:
JAR EXPORTADO INTELLIJ
java -cp "/path/to_properties_file/:/path/to_jar/some.jar" com.bla.blabla.ClassContainingMainMethod
JARRO EXPORTADO ECLIPSE
java -jar some.jar
em que o jar executável exportado pelo Eclipse apenas espera que o arquivo .properties referenciado esteja no mesmo local em que o arquivo .jar está