2014-09-21 4 views
0

У меня возникают проблемы с JAR-файлом, который добавляет класс, который позволит моему основному классу отправлять электронные письма.java/NoClassDefFoundError error только во время выполнения

То, что я сделал ...

  • Сохраненный файл EmailAPI.jar в моей папке, как указано в тексте ниже POM (и он находит его, потому что в NetBeans я могу исследовать класс)
  • Обновлено зависимость в моем файле POM, следующим образом:

    <dependency> 
        <groupId>EmailAPI</groupId> 
        <artifactId>EmailAPI</artifactId> 
        <version>1.0</version> 
        <scope>system</scope> 
        <systemPath>${basedir}\src\lib\EmailAPI.jar</systemPath> 
    </dependency> 
    
  • Добавить импорт (NetBeans автоматически добавляется это, когда я использовал класс по электронной почте, так что, кажется, знает, где искать ...)

    Импорт me.nrubin29.emailapi.Email;

  • вызова класс, непосредственно используя структуру при условии

    //send an email 
    new Email() 
         .withSMTPServer("smtp.gmail.com") 
         .withUsername("[email protected]") 
         .withPassword("xxxxxxx") 
         .withTo("[email protected]; [email protected]") 
         .withSubject("[RP] Server has started") 
         .withBody("This is the body!") 
         .send(); 
    

я могу построить нормально, все работает ... но потом, когда я пытаюсь запустить его (в виде плагина для Minecraft), Я получаю NoClassDefFoundError, как показано здесь: http://pastebin.com/V33gCLVG

Я не понимаю, чего здесь не хватает. Может кто-то указать мне верное направление?

ответ

1

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

+0

Я добавил комментарии к ответу выше, можете ли вы придумать что-нибудь, что может помочь? – runelynx

1

Вы используете <scope>system</scope>. Доступен ли он в среде Minecraft? См. Maven, Introduction to the Dependency Mechanism, Dependency Scope: «Эта область схожа с provided [...]« и под предоставляется: »означает, что вы ожидаете [...] контейнер, чтобы обеспечить зависимость во время выполнения».

+0

Недоступно; Я также вижу из других вопросов, что область/система - моя проблема. Кажется, что «компилировать» область - это то, что мне нужно. Я просто путаюсь с тем, где я должен поставить фактическую зависимость JAR, затем ...:// – runelynx

+1

В вашем локальном хранилище Maven. По умолчанию в '$ {user.home} /. M2/repository' или в соответствии с' 'в начале вашего' settings.xml'. Сделал _you_ build 'EmailAPI.jar'? С 'mvn install'? При этом он будет автоматически помещен туда Maven. –

+0

Хорошо, попробовал установить его там с некоторыми советами из Интернета, вот вывод ... давая ему еще одну попытку http://pastebin.com/0aqLBDgC – runelynx

1

EmailAPI требует двух JAR для запуска. Я думаю, что это активация, почта или что-то еще. Я могу посмотреть на проект, но думаю, что вы, возможно, пропустили их.

+0

Я добавил почту и активацию в свой проект в качестве зависимостей, но EmailAPI не находит их. Открыв файл classpath в EmailAPI, я нашел это ... http://pastebin.com/taAhmxK1 ... так что это значит для среды выполнения? Мне нужно создать/src/lib в моей папке плагинов и разместить там mail/activation.jar? – runelynx

+0

Я пробовал поместить это повсюду по отношению к моему банку minecraft, моему плагину ... с теми же ошибками. EmailAPI не может найти свои зависимости. – runelynx

Смежные вопросы