Получение ресурсов из проекта java [дубликат]

Для достижения этого поведения вы должны использовать globals() встроенный метод :

def var_of_var(k, v):
    globals()[k] = v

print variable_name # NameError: name 'variable_name' is not defined
some_name = 'variable_name'
globals()[some_name] = 123
print variable_name # 123

some_name = 'variable_name2'
var_of_var(some_name, 456)
print variable_name2 # 456

50
задан Barett 24 June 2015 в 17:04
поделиться

2 ответа

Для Eclipse, как правило, все, что вам нужно сделать, это настроить папку где-нибудь в вашем каталоге исходного кода. Например, если каталог, содержащий ваш источник, /src, вы можете создать папку /src/resources для размещения ваших изображений / файлов. Затем внутри вашего класса вы делаете getResource("/resources/image.png") для его получения.

Вы также можете поместить изображение / файл в ту же папку / пакет, что и класс, пытающийся получить к нему доступ, если хотите (пример: поместите файл image.png в пакет com.mycompany с помощью com.mycompany.Foo класс, который должен получить к нему доступ и вызвать getResource("image.png")), но я обнаружил, что легче хранить такие ресурсы, как изображения и другие файлы, в их собственной специальной директории за пределами папок класса - им просто проще управлять этим способом.

В Eclipse всякий раз, когда вы делаете сборку, файлы в этом каталоге ресурсов будут скопированы в ваш каталог сборки вместе с вашими скомпилированными классами.

Важно отметить, что если в Eclipse (как и большинство людей) включена функция «Build Automatically», любые ресурсы в этом каталоге, которые меняются вне Eclipse (т. е. вы редактируете изображение с помощью редактирования изображения инструмент), что среда IDE не всегда может обнаружить это изменение. Обычно обновление в папке проекта гарантирует, что файл будет обновлен в сборке в этих ситуациях.

62
ответ дан BCunningham 21 August 2018 в 18:48
поделиться
  • 1
    Я бы добавил, что если Eclipse неправильно обрабатывает каталог ресурсов, который вы помещаете в src /, вам нужно & quot; include & quot; он не использует его как «исходную папку». Вы можете сделать это, создав контекстное меню для папки (щелкните правой кнопкой мыши) и перейдите в «Путь сборки» - & gt; Удалить из пути сборки, включить – charstar 6 December 2011 в 02:29

Вы можете поместить их в папку src рядом с вашими классами, или вы можете создать новую исходную папку для этой цели (обычно называемую resources ), хотя вы будете находить их одинаково из кода.

Затем вы получите их с помощью getResource("/com/x/y/foo.png").

7
ответ дан blackpanther 21 August 2018 в 18:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: