Ресурсы Java

 
 
 
Сообщения:3
Здравствуйте. Я новичек в программировании, не относитесь предвзято. Есть консольное приложение, написанное на Java. Использовал систему сборки Maven. Писал в Idea.

В программе есть выводы типа:
System.out.println("You haven't duplicates in your directory");
System.out.println("You have duplicates in your directory:");
System.out.println("_____________________________________\n\n" +
                "The program searches for duplicate files in your directory.\n\n" +
                "---------\n" +
                "USAGE:             First add the path in which you want to search\n" +
                "                   in such a way: \"C:\\User\\Your_Directory\\\"\n" +
                "                   Then click Enter key and wait, until the results\n" +
                "                   page is displayed.\n\n" +
                "PARAMETERS:\n\n" +
                "\"--help\"           get help\n" +
                "_____________________________________");


Нужно запихнуть эти строки в ресурсы, чтоб в дальнейшем можно было их изменять, не влезая в сам код. По сути, нужно сделать поддержку i18n.
Облазил просторы интернета, но не нашёл ответа на свой вопрос.
Структура проекта такова:
src
  main
    java
  test
    java

Как и где создается папка с ресурсами? Какого расширения должны быть в ней файлы или файл (ресурсы), чтоб можно было вызывать мои строки в нужном месте кода.
Как вызвать ресурс в коде.
Подскажите пожалуйста, весь день голову ломаю. Я хоть правильно понимаю направление действий? Если можно, объясните на доступном языке. Спасибо.
Изменен:17 фев 2015 12:35
 
 
Сообщения:1539
aida64:
Здравствуйте. Я новичек в программировании, не относитесь предвзято. Есть консольное приложение, написанное на Java. Использовал систему сборки Maven. Писал в Idea.

В программе есть выводы типа:
System.out.println("You haven't duplicates in your directory");
System.out.println("You have duplicates in your directory:");
System.out.println("_____________________________________\n\n" +
                "The program searches for duplicate files in your directory.\n\n" +
                "---------\n" +
                "USAGE:             First add the path in which you want to search\n" +
                "                   in such a way: \"C:\\User\\Your_Directory\\\"\n" +
                "                   Then click Enter key and wait, until the results\n" +
                "                   page is displayed.\n\n" +
                "PARAMETERS:\n\n" +
                "\"--help\"           get help\n" +
                "_____________________________________");


Нужно запихнуть эти строки в ресурсы, чтоб в дальнейшем можно было их изменять, не влезая в сам код. По сути, нужно сделать поддержку i18n.
Облазил просторы интернета, но не нашёл ответа на свой вопрос.
Структура проекта такова:
src
  main
    java
  test
    java

Как и где создается папка с ресурсами? Какого расширения должны быть в ней файлы или файл (ресурсы), чтоб можно было вызывать мои строки в нужном месте кода.
Как вызвать ресурс в коде.
Подскажите пожалуйста, весь день голову ломаю. Я хоть правильно понимаю направление действий? Если можно, объясните на доступном языке. Спасибо.


Читайте сперва про ResourceBundle
http://skipy.ru/technics/localization.html
http://tutorials.jenkov.com/java-internationalization/index.html (Тут слева содержание из 13 пунктов)

Чтобы получить правильный ответ, нужно задать правильный вопрос.
«Keep in mind You must always be a good ninja!»
 
 
Сообщения:3
Прочитал информацию- подчерпнул нового. Спасибо. Пробовал пробовал и в итоге- ничего не получилось.
Моя проблема в том, что скорее всего моя ошибка кроется где-то в самом начале, в самых азах. Приведенные выше ссылки для меня лес дремучий)
Давайте лучше потихоньку, маленькими шагами разберем.

В итоге долгих поисков я немного приблизился к цели.
Нашёл хорошую статейку вот тут: Простой пример работы с Property файлами в Java

Создал папку resources, как указано в статье, назначил в Idea эту папку как "ресурсы".
В папке создал файл .properties и пихнул туда ключ-значение.
Далее создал новый метод в Мейне моей программы, который и обращается к файлу .properties, берет из него ключ и печатает на экран значение по ключу.
 fis = new FileInputStream("src/main/resources/config.properties");

Вот так все работает, но я вычитал, чтоб в будущем не зависеть от пути файла, нужно изменить путь таким образом:
fis = new FileInputStream(getClass().getClassLoader().getResourceAsStream(propFileName));


Но вот getClass() подчеркивает красным, ругается, что мол метод нельзя использовать в статик методах.
Как пофиксить данную проблему?
 
 
Сообщения:3
Решил проблему так:

InputStream fis = Main.class.getClassLoader().getResourceAsStream("Strings.properties");
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет