У меня есть файл jar
с конфигурационным файлом properties
.запустить файл .jar со свойствами файла конфигурации
Когда я запускаю его в Netbeans
, все работает так, как должно.
, но когда я запустил его в cmd
- файл свойств не найден.
Почему?
У меня есть файл jar
с конфигурационным файлом properties
.запустить файл .jar со свойствами файла конфигурации
Когда я запускаю его в Netbeans
, все работает так, как должно.
, но когда я запустил его в cmd
- файл свойств не найден.
Почему?
Это зависит от того, как вы загружаете файл свойств. Рассмотрим, чтобы загрузить свои свойства с помощью:
InputStream in = getClass().getResourceAsStream("/log4j.properties");
, а затем использовать Properties.load (в)
Это должно справиться с ситуацией, когда файл свойств физически находится в банку Good Luck!
Когда вы упаковываете свойства внутри файла jar, вы должны использовать загрузчик классов, чтобы найти файл, так как он больше не отображается в качестве файла.
Если файл свойств инсайдерской файл банку в корень файла банку, то ответ приведенный выше, что вы будете использовать:
Properties p = new Properties();
InputStream is = MyClass.class.getResourceAsStream("/config.properities");
if(is != null)
{
p.load(is);
}
, который должен вернуть InputStream, что вы можете перейти на класс свойств для загрузки. Если этот вызов возвращает NULL, вам нужно посмотреть, где находится файл свойства относительно корня файла jar.
спасибо, но у меня есть ошибка в функции 'getclass()': нестатический метод getClass() не может ссылаться на статический контекст – zeevblu
Какова ваша ошибка, getClass() будет работать, если вы не в статическом методе. –
Если вы находитесь внутри основного метода (который является статическим), а ваш класс называется MyClass (например), попробуйте следующим образом: MyClass.class.getResourceAsStream (...) –