Problème de chargement de ressources lors de l'exécution dans Eclipse

Je suis en train de travailler sur une balançoire projet, à l'aide de maven2 (à partir de la ligne de commande) et eclipse (sans maven integration). Donc, je générer le projet eclipse à travers maven plugin eclipse (mvn eclipse:eclipse), de l'importer à l'intérieur de l'éclipse, et de faire tout mon travail.

Mon problème est le suivant: quand je lance mon application dans eclipse (comme une Application Java), je ne peux pas trouver les ressources qui sont dans mon répertoire src. Creuser pour plus d'informations sur mon problème, je reçois dans cette réponse d'une autre question. Donc, j'ai comparé la sortie de l'une des instructions suivantes:

MyClass.class.getResource("/").getPath();
MyClass.class.getProtectionDomain().getCodeSource().getLocation().toString();

Ceux qui m'ont donné les résultats suivants, respectivement:

${workspace_loc}/${my_project}/cible/test classes/
fichier:/${workspace_loc}/${my_project}/target/classes/

Vérification de l'emplacement ci-dessus, j'ai pu voir que le premier est vide, tandis que l'autre contenait toutes mes classes compilées et de ressources. Donc, je suis venu à la conclusion que le chargeur de classe est à la recherche de mes ressources dans le mauvais endroit. Donc, je pense que j'ai trois questions:

  1. Est ma compréhension correcte?
  2. Si oui, comment il fait pour trouver les classes, qu'il est en cours de chargement?
  3. Comment puis-je résoudre ce problème?

Mise à JOUR: j'ai changé mon code, donc au lieu d'invoquer MyClass.class.getResource(...) ou MyClass.class.getResourceAsStream(...), je suis maintenant en utilisant ClassLoader.getSystemResource(...) et ClassLoader.getSystemResourceAsStream(...). De cette façon, tout fonctionne très bien dans eclipse. Je ne sais pas exactement pourquoi. Toute allusion à ce sujet?

Avez-vous essayez d'exécuter votre application à partir de Maven avec exec:java? Quel est le résultat?
Êtes-vous d'obtenir l'avertissement concernant maven classpath conteneur ?
Il fonctionne très bien lorsque j'utilise mvn exec:java.
Découvrez cette question, presque le même problème, et la accepté de répondre, je pense que permettra de répondre à votre question de savoir pourquoi. stackoverflow.com/questions/2815404/load-properties-file-in-jar

OriginalL'auteur Alexandre | 2011-03-30