2012-06-23 2 views
4

У меня проблема с исполняемым исполняемым файлом .jar. Я создал проект, содержащий файл .properties. Это прекрасно работает, когда я начинаю его от затмения, но когда я экспортировать его в исполняемый файл .jar и попробуйте запустить его с:Исполняемый .jar не запускается из-за загрузки файла .properties

java -jar myfile.jar 

я получаю следующее исключение:

(не удалось опубликовать изображение здесь) http://imageshack.us/photo/my-images/824/29583616.png/

Я проверил мой файл манифеста в .jar и содержит

Class-Path: . 

а вот свойства файл:

properties = new Properties(); 
    properties.load(new FileInputStream(
      "src/com/resources/treeView.properties")); 

Любая идея, что вызывает это исключение?

+1

try "properties = new Properties(); properties.load (new FileInputStream ( " /com/resources/treeView.properties "));" без «src» в пути. – happy

ответ

5

Если файл свойств находится внутри файла банку, вы не можете получить доступ к нему в виде файла.

Вам нужно попросить загрузчика классов получить ресурс в качестве входного потока. См. Getting the inputstream from a classpath resource (XML file)

+0

Спасибо! Это сработало! properties.load (ClassLoader.class.getResourceAsStream ("/ com/resources/treeView.properties")); – Ivo

1

В Eclipse (и в большинстве IDE) текущий каталог является корневым каталогом проекта. Это означает, что Class-Path: . означает что-то еще в Eclipse, чем при запуске из командной строки. Вот почему вы написали «src/com/...». Удалить «SRC»:

properties.load(new FileInputStream("com/resources/treeView.properties")); 
0

Ваш файл свойств находится в файле JAR. Итак, используйте: ClassLoader.getResourceAsStream().