2014-09-23 3 views
0

Я вручную вставляю файл свойств внутри банки. Как загрузить свойства из файла jar перед java 1.7? Я пробовал много обходных решений, и до сих пор ничего не работало.Загрузка свойств из JAR-файла (java 1.6)

Есть много вопросов об этом, но все сосредоточено на методах ClassLoader от java 1.7.

+0

Возможный дубликат http://stackoverflow.com/questions/2815404/load-properties-file-in-jar –

+0

@SajanChandran Нет, это не так, OP попросил не использовать метод ClassLoader, который разыскивается плакатом в вашей ссылке – msrd0

+0

, если вы видите решение, заданное в вопросе, оно точно отвечает на вопрос (без использования Classloader) –

ответ

2

Когда у вас есть файл свойств внутри вашего пути к классам или внутри вашего файла jar, он становится ресурсом. Любой другой случай - это простой файл.

Что вам нужно сделать, прежде чем упаковать ваш файл банку, добавить в ваш путь к классам папку, в которой файлы свойств (т.е. MyProject/SRC/основные/ресурсы /), то где бы вы сделать

Properties properties = new Properties(); 
properties.load(MyClass.class.getResourceAsStream("/yourPropsFileName")); 

он загрузит его!

Хотя, если вы используете внешний файл свойств вы также можете загрузить его с помощью:

Properties properties = new Properties(); 
properties.load(new FileInputStream("extenalPropsFileLocation")); 

Надеется, что это помогает!

+0

Как java определяет путь к ресурсам? Что делать, если я помещаю его без какой-либо директории, а только сырую скопированную пасту внутри банки? – krzakov

+0

Как вы создаете свою банку? вы используете maven или подобное? –

+0

Нет, только стандартный экспорт банки. Это очень простая программа. – krzakov

0

С некоторого класса, звоните:

getClass().getResourceAsStream("/path/to/props.props") 

Убедитесь, что путь совпадает с местоположением CLASSPATH.

+0

Вот что я сказал раньше. Не существует такого метода, как getClass() в Object до java 1.7 – krzakov

+0

У каждого объекта есть метод getClass() задолго до java 1.7 –

Смежные вопросы