Получение ресурса в другом проекте с использованием classloader

Используя ClassLoader#getResource(), мне нужно получить доступ к файлу, который присутствует в проекте, отличном от того, где находится мой текущий код. Как это может быть сделано?

Я использую затмение.

Структура каталогов:

корень  
| -project1  
| | -package  
| | -myResourceFile  
| -project2  
  | -package  
    | -myCodeFile  

Я пытаюсь получить myResourceFile из myCodeFile, используя myCodeFile.class.getClassLoader(). GetResource("../../project1/package/myResourceFile"), но всегда возвращающий ноль. Я не хочу добавлять project1 в classpath project2. Хотя добавление, что также не сработало.

С уважением,

2 ответа

Плохо пытаться читать файлы из другого проекта, потому что это связывает вас именно с этой структурой каталогов. Вы уже сделали первый шаг в отделении проектов с помощью getResource() вместо использования java.util.File API, так что вы можете пройти полный путь.

В Eclipse вы можете добавлять другие проекты в путь сборки проектов (Свойства проекта -> Путь сборки Java -> Проекты). Вы должны быть в состоянии прочитать файлы других проектов сейчас.

Если вы используете maven, вы можете указать project1/package в качестве папки ресурсов в pom.xml project2. Вы можете использовать метод getResource Classloader, чтобы получить ресурс

http://maven.apache.org/plugins/maven-resources-plugin/examples/resource-directory.html

Другие вопросы по тегам