web-dev-qa-db-fra.com

Comment ajouter un répertoire au classpath Eclipse?

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. 

8
user2197116

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.

enter image description here

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éé.

17
E-Riz

Ceci est pour un projet maven:

  1. Clic droit sur le projet
  2. cliquez sur les configurations d'exécution
  3. cliquez sur l'onglet classpath (Oxygen Eclipse)
  4. cliquez sur les entrées de l'utilisateur
  5. cliquez sur Avancé
  6. la première sélection de radio par défaut doit être 'Ajouter des dossiers'
  7. cliquez sur OK
3
user3324410

Suivez ces étapes pour résoudre ce problème:

  1. Clic droit sur projet
  2. Cliquez sur Exécuter en tant que et sélectionnez Exécuter les configurations.
  3. Cliquez sur l'onglet Classpath (Oxygen Eclipse).
  4. Cliquez sur les entrées d'utilisateur
  5. Cliquez sur Ajouter des fichiers JAR externes .. et choisissez le fichier JAR téléchargé.
  6. Cliquez sur Appliquer et lancez votre projet ...
2
Rajesh Guna

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é.

0
Vivek Vardhan