2016-03-25 6 views
0

Я создал приложение Java, которое я хотел бы использовать в качестве внешней библиотеки. Поэтому я создаю файл jar и импортирую его в другой проект. Когда я использую мою библиотеку я называюИсключение (исключение сигара) throwing вызывает ошибку после импорта

notif.addMachineStat(ip,"Harvester"); 

, который объявлен как

public void addMachineStat(String ip,String computerTitle) throws InterruptedException, SigarException { 
     Resources rs=new Resources(new Sigar()); 
     addMachineStat(ip,computerTitle,Double.toString(rs.getAllCpus()),Double.toString(rs.getMemory()),rs.getNetwork(),Double.toString(rs.getFreeHddPerc())); 
    } 

Проблемы, кажется, с SigarException, выбрасываемая из второй строки (addMachineStat(....)). По какой-то причине класс SigarException (import org.hyperic.sigar.SigarException;) не переносится из файла jar в новый проект. Должен ли я импортировать его в другой проект? разве нет способа получить его из банки, а пользователь должен его импортировать?

Смешная вещь, если я использую Maven на втором проекте (в моем проекте библиотеки в первую очередь используется Maven), похоже, что он работает нормально.

ответ

0

Да, вы должны импортировать все банки, которые зависят от вашего кода и библиотек, если вы не используете инструмент построения, например maven или gradle.
Maven имеет Переходные зависимости особенности, которая делает все работа

транзитивные зависимости новой функция в Maven 2.0. Это позволяет избежать необходимости обнаруживать и указывать библиотеки, которые требуются ваши собственные зависимости, и включать их автоматически.

Эта функция облегчается путем чтения файлов проекта ваших зависимостей из указанных удаленных репозиториев. В общем, все зависимости этих проектов используются в вашем проекте, как и все, что проект наследует от своих родителей или от его зависимостей и т. Д.

Именно поэтому он отлично работает.

Так у вас есть несколько вариантов (в порядке убывания предпочтения):

  1. сохранить с помощью Maven или другой инструмент сборки. Все популярные Иды имеет интеграцию с инструментами сборки (например M2Eclipse плагин)
  2. Сборка вашей библиотеки со всеми dependincies в одну банку, как описано в Including dependencies in a jar with Maven
  3. управления зависимостями вручную
Смежные вопросы