Я работаю над проектом Swing, используя maven2 (из командной строки) и eclipse (без интеграции с maven).Итак, я генерирую проект eclipse с помощью maven eclipse plugin (mvn eclipse:eclipse
), импортирую его в eclipse и выполняю всю свою работу.
Моя проблема: когда я запускаю свое приложение вЗатмение (как Java-приложение), я не могу найти ни один из ресурсов, которые находятся в моем каталоге src.В поисках информации о моей проблеме я получаю ответ на другой вопрос .Итак, я сравнил вывод следующих инструкций:
MyClass.class.getResource("/").getPath();
MyClass.class.getProtectionDomain().getCodeSource().getLocation().toString();
Они дали мне следующие выходные данные соответственно:
$ {workspace_loc} / $ {my_project} / target /test-classes / file: / $ {workspace_loc} / $ {my_project} / target / classes /
Проверяя вышеуказанные местоположения, я мог видеть, что первое пусто, а другое содержит всемои скомпилированные классы и ресурсы.Итак, я пришел к выводу, что загрузчик классов ищет мои ресурсы не в том месте.Итак, я думаю, у меня есть три вопроса:
- Правильно ли мое понимание?
- Если да, то как найти классы, которые он загружает?
- Какрешить эту проблему?
ОБНОВЛЕНИЕ: я изменил свой код, поэтому вместо вызова MyClass.class.getResource(...)
или MyClass.class.getResourceAsStream(...)
я теперь использую ClassLoader.getSystemResource(...)
и ClassLoader.getSystemResourceAsStream(...)
.Таким образом, в затмении все работает нормально.Я просто не знаю точно, почему.Любой намек на это?