2009-06-16 5 views
4

Je viens de commencer à utiliser Log4J pour la première fois. J'ai créé un fichier log4j.properties et l'ai placé dans le dossier de mon projet dans Eclipse. J'ai également créé une configuration Run pour mon application (c'est juste une configuration Run par défaut, pas d'options supplémentaires).Une question sur Eclipse et classpath dans une configuration d'exécution

Maintenant, j'essaye d'exécuter l'application et j'obtiens un message d'erreur sur le fait que log4j ne peut pas s'initialiser (lire le fichier de propriétés). Je sais que le fichier de propriétés doit être dans le classpath, donc évidemment la configuration d'exécution ne définit pas correctement le classpath.

Si je vais à l'onglet Classpath de ma configuration d'exécution, je donne les résultats suivants:

  • Bootstrap Entrées
  • entrées utilisateur
    • MyApplication (classpath par défaut)
    • log4j-1.2 .15.jar - C: \ Espace de travail \ MyApplication \ lib

Toutefois, si j'ajoute le dossier de mon projet manuellement (je clique sur Ajouter des dossiers, Avancé, MyApplication), log4j pourra s'initialiser.

Pourquoi est-ce le cas? Pourquoi log4j ne peut pas trouver le fichier de propriétés à moins que j'ajoute le dossier du projet manuellement? Ce dossier n'est-il pas dans le classpath par défaut? (La sortie ci-dessus suggère que c'est le cas.)

Répondre

2

Non, le dossier du projet lui-même n'est pas dans le classpath par défaut - les dossiers de sortie du projet sont (généralement un sous-dossier nommé bin ou classes). Si vous placez votre log4j.properties dans le dossier source de votre projet au lieu de son dossier racine, tout devrait fonctionner (les fichiers non-source dans le dossier source sont copiés automatiquement dans le dossier de sortie). En général, vous ne devriez pas avoir à manipuler le classpath des configurations d'exécution - dans la plupart des cas, il est plus approprié de changer (ou, comme dans votre cas, d'utiliser correctement) le chemin de construction dans les propriétés du projet.

1

Le dossier du projet n'est pas ajouté au classpath par défaut. Le classpath contient uniquement le dossier classes par défaut.

Vous devrez ajouter manuellement tout autre dossier au classpath.

0

Vous avez deux options:

  • placer le fichier log4j.properties sous votre dossier src
  • Créer un dossier source supplémentaire, généralement des noms ou des ressources res, et placez le fichier log4j.properties il

La raison pour laquelle cela ne fonctionne pas maintenant est que le fichier ne se trouve pas dans le chemin de classe du projet. Vous pouvez voir le chemin de classe à partir de Projet> Propriétés> Chemin de construction Java

Questions connexes