Pourquoi ne peut que mon Application Java trouver mon fichier de propriétés

J'ai une application simple qui lit et écrit sur un fichier de propriétés. Il a été développé dans NetBeans et lors de l'exécution à partir de Netbeans fonctionne très bien. Cependant, maintenant que j'ai construit et déployé les propriétés de fichier ne peut pas être trouvé.

Structure De Projet

com/company/projectname/controller/controllerclass.java <- this is where the code using the properties file exists

conf/runController.properties <- the properties file, this exists here

Dans le code j'ai le texte suivant pour accéder au fichier de propriétés:

private final String PROPERTIESFILELOCATION = "conf/runController.properties";

public void runController(){
this.runController = new Properties();
this.propertiesLocation = this.getClass().getClassLoader().getResource(this.PROPERTIESFILELOCATION);
FileInputStream propsInput = new FileInputStream(this.propertiesLocation.getFile());
this.runController.load(propsInput);
}

(résumées par souci de concision)

Lorsque j'appelle le fichier jar à partir de la ligne de commande j'question:

java -classpath /usr/java/projectdirectory/project.jar com.company.projectname.controller.controllerclass arg1

Donc, j'ai réussi à atteindre cet objectif avant sur d'autres projets de la même manière, mais pour une raison quelconque, cela ne fonctionne pas.

J'ai vérifié la structure à l'intérieur du fichier jar et tout est comme prévu.

Quelqu'un peut-il remarquer mon erreur et m'aider à obtenir cette place et en cours d'exécution s'il vous plaît?

EDIT - changé les noms pour correspondre à l'échelle. Ils ont toujours été cohérent dans mon code

Dans le fichier jar, le fichier existe que conf/controller.properties, ou comme conf/runController.properties, ou est-ce un autre nom (ou chemin d'accès différent à l'intérieur du pot)?
J'ai fait changer le code de l'échantillon, merci pour le spot. Il existe dans le fichier jar at conf/runController.les propriétés. Les noms de tous les match de mon application
Si vous modifiez la propriété d'être /conf/runController.properties de sorte qu'il est sûr d'être par rapport au pot lui-même (et non par rapport à l'emplacement de l' .fichier de classe dans le pot)
Si je fais ce que je reçois une exception de pointeur Null sur: FileInputStream propsInput = new FileInputStream(ce.propertiesLocation.getFile()); Parce que la propertiesLocation n'est pas défini par le présent.propertiesLocation = ce.getClass().getClassLoader().getResource(ce.PROPERTIESFILELOCATION);

OriginalL'auteur nathj07 | 2013-01-11