Получение ресурса в другом проекте с использованием classloader - PullRequest
2 голосов
/ 19 октября 2010

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

Я использую eclipse.

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

Root  
|-project1  
| |-package  
|   |-myResourceFile  
|-project2  
  |-package  
    |-myCodeFile  

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

С уважением,

Ответы [ 2 ]

2 голосов
/ 19 октября 2010

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

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

1 голос
/ 09 июля 2014

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

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

...