Pour ceux d'entre vous qui migrent d'Eclipse vers IntelliJ ou l'inverse, voici une astuce lorsque vous travaillez avec des fichiers de propriétés ou d'autres fichiers de ressources.
C'est exaspérant (cela me coûte une soirée entière pour le savoir) mais les deux IDE fonctionnent assez différemment quand il s'agit de rechercher des fichiers de ressources / propriétés lorsque vous voulez exécuter localement à partir de votre IDE ou pendant le débogage. (L'emballage en .jar est également assez différent, mais c'est mieux documenté.)
Supposons que vous ayez une référence de chemin relative comme celle-ci dans votre code:
new FileInputStream("xxxx.properties");
(ce qui est pratique si vous travaillez avec des fichiers .properties spécifiques à env que vous ne souhaitez pas empaqueter avec votre JAR)
INTELLIJ
(J'utilise 13.1, mais pourrait être valable pour plus de versions)
Le fichier xxxx.properties doit être dans le répertoire PARENT du projet ROOT pour être récupéré au moment de l'exécution comme celui-ci dans IntelliJ. (Le projet ROOT est l'emplacement du dossier / src)
ÉCLIPSE
Eclipse est simplement heureux lorsque le fichier xxxx.properties est à la racine du projet lui-même.
Donc IntelliJ s'attend à ce que le fichier .properties soit 1 niveau plus haut qu'Eclipse lorsqu'il est référencé comme ça !!
Cela affecte également la façon dont vous devez exécuter votre code lorsque vous avez cette même ligne de code (new FileInputStream ("xxxx.properties");) dans votre fichier .jar exporté. Lorsque vous voulez être agile et ne voulez pas empaqueter le fichier .properties avec votre jar, vous devrez exécuter le jar comme ci-dessous afin de référencer correctement le fichier .properties à partir de la ligne de commande:
POT EXPORTÉ INTELLIJ
java -cp "/path/to_properties_file/:/path/to_jar/some.jar" com.bla.blabla.ClassContainingMainMethod
POT EXPORTÉ ECLIPSE
java -jar some.jar
où le fichier jar exécutable exporté Eclipse s'attendra simplement à ce que le fichier .properties référencé soit au même emplacement que celui où se trouve le fichier .jar