Para aquellos de ustedes que migren de Eclipse a IntelliJ o al revés, aquí hay un consejo cuando trabajen con archivos de propiedades u otros archivos de recursos.
Es enloquecedor (me costó toda una noche averiguarlo) pero ambos IDE funcionan de manera bastante diferente cuando se trata de buscar archivos de recursos / propiedades cuando desea ejecutar localmente desde su IDE o durante la depuración. (El empaquetado en un .jar también es bastante diferente, pero eso está mejor documentado).
Suponga que tiene una referencia de ruta relativa como esta en su código:
new FileInputStream("xxxx.properties");
(lo cual es conveniente si trabaja con archivos .properties específicos de env que no desea empaquetar junto con su JAR)
INTELLIJ
(Yo uso 13.1, pero podría ser válido para más versiones)
El archivo xxxx.properties debe estar en el directorio PADRE del proyecto ROOT para poder ser recogido en tiempo de ejecución como este en IntelliJ. (El proyecto ROOT es donde reside la carpeta / src)
ECLIPSE
Eclipse está feliz cuando el archivo xxxx.properties está en el proyecto ROOT.
¡Entonces IntelliJ espera que el archivo .properties sea 1 nivel más alto que Eclipse cuando se hace referencia a él de esta manera!
Esto también afecta la forma en que tiene que ejecutar su código cuando tiene esta misma línea de código (nuevo FileInputStream ("xxxx.properties");) en su .jar exportado. Cuando quiera ser ágil y no quiera empaquetar el archivo .properties con su jar, tendrá que ejecutar el jar como se muestra a continuación para hacer referencia al archivo .properties correctamente desde la línea de comando:
TARRO EXPORTADO INTELLIJ
java -cp "/path/to_properties_file/:/path/to_jar/some.jar" com.bla.blabla.ClassContainingMainMethod
TARRO ECLIPSE EXPORTADO
java -jar some.jar
donde el archivo ejecutable exportado de Eclipse solo esperará que el archivo .properties al que se hace referencia esté en la misma ubicación que donde está el archivo .jar