J'essaie de lancer un projet Eclipse existant créé par une autre personne.
Après l’importation dans Eclipse et la tentative d’exécution en tant que> application Java, elle échoue car elle ne trouve pas de fichier .properties dans bin/resources.
J'ai imprimé le chemin de classe qu'Eclipse utilisait
logger.info(System.getProperty("Java.class.path"));
et bien sûr, cela inclut bin et tous les lib/*. jars, mais pas bin/resources. La copie du fichier .properties dans bin fait fonctionner le programme, mais je voulais comprendre comment ajouter un répertoire au chemin de classe Eclipse.
J'ai essayé plusieurs choses, dont aucune n'a fonctionné
export CLASSPATH=$CLASSPATH:/home/me/programdir/bin/resources
Cela n'a pas fonctionné. Je comprends que ce n’est pas une façon souhaitable d’aborder le problème, mais j’avais pensé que cela réglerait le problème (j’ai plus de fond d’écran que de Linux, alors il me manque peut-être des nuances de variables système dans Linux)
Ensuite, j'ai essayé de modifier les arguments VM dans la boîte de dialogue Exécuter-> Configurations d'Eclipse.
-classpath "/home/me/programdir/bin/resources"
Pas de chance ici non plus, ce qui m'a dérouté, car j'étais sûr que cela fonctionnerait et semblait être une solution raisonnable pour un programme spécifique nécessitant l'ajout d'un dossier supplémentaire au classpath.
Ensuite, j'ai essayé de modifier build.xml directement. J'ai trouvé la partie qui définit le chemin de classe et ajouté ma propre ligne pour bin/resources, comme suit:
<path id="classpath">
<fileset dir="./bin/resources" includes="**/*.properties"/>
<fileset dir="./lib" includes="**/*.jar" />
</path>
cela aussi a échoué. Cela me rendit encore plus perplexe. J'ai donc commenté l'intégralité de l'élément path, et le chemin d'accès aux classes imprimé par l'enregistreur était inchangé. Cela me semblait la meilleure solution, si cela avait fonctionné: le fichier build.xml pouvait être archivé avec les ajouts corrects pour éviter que les futurs utilisateurs ne rencontrent le problème.
Ensuite, j'ai essayé l'approche IDE. Exécuter-> Configurations-> Classpath-> User Entries-> Advanced et simplement ajouté le dossier bin/resources. Cela a fonctionné parfaitement, le programme trouve le fichier de propriétés, tout va bien. Cependant, je ne suis pas satisfait que mes efforts précédents aient échoué sans que je comprenne vraiment pourquoi. Il semble que chacun aurait dû travailler.
De plus, je veux m'assurer que je résous ce problème de telle sorte qu'il soit capturé par le code que j'ai archivé afin que les utilisateurs suivants ne subissent pas les mêmes étapes. Ma solution n’est donc pas très satisfaisante, car je ne suis pas sûr du code qui a réellement été modifié et je ne peux donc pas vérifier que la «solution» est archivée.
Comment trouvez-vous la définition réelle qu'Eclipse utilise pour son classpath? J'avais pensé que ce serait la définition du chemin d'accès aux classes build.xml, mais cela ne semblait pas du tout être le cas.
Dans Eclipse, il existe un chemin de classe de construction et un chemin de classe d'exécution. Il existe également l'emplacement de sortie de la construction, qui est par défaut bin
. Vous ne souhaitez pas ajouter de ressources directement à bin
car Eclipse peut supprimer son contenu lors d'une génération propre. Ce que vous devez faire, c'est ajouter un dossier resources
dans votre projet pour contenir tous les fichiers non Java que vous souhaitez inclure dans votre sortie de génération.
Pour inclure le contenu de ce dossier resources
dans la sortie de la construction (bin
), cliquez avec le bouton droit sur le projet et sélectionnez Propriétés. Dans les propriétés du projet, sélectionnez la section chemin de construction Java, puis l'onglet Source.
Utilisez le bouton Ajouter un dossier ... pour sélectionner le dossier resources
de votre projet, puis OK pour enregistrer les modifications. À ce stade, Eclipse copiera automatiquement tout ce qui se trouve de resources
dans bin
lorsqu’il sera créé.
Ceci est pour un projet maven:
Suivez ces étapes pour résoudre ce problème:
Cliquez avec le bouton droit de la souris sur le nom-projet dans Explorateur de packages , sélectionnez Propriétés , sélectionnez Chemin de construction Java à gauche, sélectionnez Source onglet à droite, cliquez sur sur Add Folder , parcourez les répertoires du projet pour sélectionner le dossier des ressources ou tout ce que vous devez ajouter au chemin de classe Eclipse, appuyez surOK, puis appuyez à nouveau surOK. Terminé.