Java库冲突
我在我的项目中使用了StanfordPostagger,并导入了tagger.jar 它工作得很好,但是当我尝试将Stanford NER_Recognitizer.jar文件添加到我的项目时遇到的问题两个jar都有相同的名称空间edu.Stanford.nlp,但是在NER.jar中有一些类在POStagger.jar中不存在 所以我得到了一个例外: 线程“main”java.lang.NoSuchFieldError中出现异常:strictGoodCoNLLJava库冲突,java,jar,Java,Jar,我在我的项目中使用了StanfordPostagger,并导入了tagger.jar 它工作得很好,但是当我尝试将Stanford NER_Recognitizer.jar文件添加到我的项目时遇到的问题两个jar都有相同的名称空间edu.Stanford.nlp,但是在NER.jar中有一些类在POStagger.jar中不存在 所以我得到了一个例外: 线程“main”java.lang.NoSuchFieldError中出现异常:strictGoodCoNLL 位于edu.stanford.n
位于edu.stanford.nlp.ie.NERFeatureFactory.featuresCpC(NERFeatureFactory.java:1710)” 这是因为pos tagger.jar具有edu.stanford.nlp.io.IOUtils类 它也存在于NER.jar中
那么,我怎样才能选择我想要的是第二个类而不是第一个类呢?假设第二个jar总是覆盖第一个类,这样就足够了
java -classpath NER_Recognizer.jar;tagger.jar
来自Java8页面
规格订单
指定多个类路径项的顺序是
重要提示:Java解释器将在
目录在类路径变量中的显示顺序
在前面的示例中,Java解释器将首先查找
目录C:\java\MyClasses中需要的类。仅当它不需要时
在该目录中查找具有正确名称的类将
解释器在C:\java\OtherClasses目录中查找
问题不是找不到该类,而是可以找到该类两次。我认为这不能解决问题,因为仍然会有名称空间冲突。@NonSecwitter在发生冲突时,类路径中提到的依赖项的顺序将优先,我认为这应该解决问题。@AjayGeorge我如何添加我正在使用的Netbeans的指令,那么我可以把它放在哪里呢it@Firas252你只需要确保NER_Recognizer.jar是类路径中提到tagger.jar的第一个条目。你可以按照你说的那样重新排列它们,这样我就必须选择.jar的优先级。谢谢@ajaygeorgeo如果在这个问题上没有有用的答案,我怎么能调用类加载器而不产生同样的冲突呢