2014-09-03 2 views
0

Я использую Stanford POSTagger в своем проекте и импортировал tagger .jar , и он работал нормально, но проблема, с которой я столкнулся, когда я пытался добавить файл Stanford NER_Recognizer .jar в мой проект. Оба фляга имеют то же пространство имен edu.stanford.nlp но есть классы в РЭК .jar не присутствующие в POStagger.jarКонфликты библиотек Java

Так что я получаю это исключение:

Exception in thread "main" java.lang.NoSuchFieldError: strictGoodCoNLL
    at edu.stanford.nlp.ie.NERFeatureFactory.featuresCpC(NERFeatureFactory.java:1710) " this is because the pos tagger .jar has edu.stanford.nlp.io.IOUtils class which is also present in the NER .jar

Итак, как я могу выбрать, что я хочу второй класс не первый?

+0

возможно дубликат [Можно использовать два Java-классы с таким же именем и тот же пакет?] (Http://stackoverflow.com/questions/6879652/possible -to-use-two-java-classes-with-same-name-and-same-package) – NonSecwitter

+0

там нет никакого полезного ответа, я могу использовать в этом вопросе, как я могу назвать загрузчик классов и не сделать тот же конфликт – Firas252

ответ

0

Предполагая, что вторая банка должна всегда перекрывать первое, что-то вроде этого должно быть достаточно.

java -classpath NER_Recognizer.jar;tagger.jar 

из Java 8 Class Path страница

Specification Order

The order in which you specify multiple class path entries is important. The Java interpreter will look for classes in the directories in the order they appear in the class path variable. In the previous example, the Java interpreter will first look for a needed class in the directory C:\java\MyClasses. Only when it does not find a class with the proper name in that directory will the interpreter look in the C:\java\OtherClasses directory.

+0

Проблема что класс не может быть найден, это то, что класс можно найти дважды. Я не думаю, что это решает проблему, потому что все равно будет столкновение пространства имен. – NonSecwitter

+0

@NonSecwitter В случае столкновения порядок, в котором упомянуты зависимостей в пути к классам, будет иметь приоритет, который, я думаю, должен решить проблему. –

+0

@AjayGeorge, как я могу добавить эту конструкцию, я использую Netbeans, поэтому, где бы я мог ее поставить – Firas252

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