Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java库冲突_Java_Jar - Fatal编程技术网

Java库冲突

Java库冲突,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

我在我的项目中使用了StanfordPostagger,并导入了tagger.jar 它工作得很好,但是当我尝试将Stanford NER_Recognitizer.jar文件添加到我的项目时遇到的问题两个jar都有相同的名称空间edu.Stanford.nlp,但是在NER.jar中有一些类在POStagger.jar中不存在

所以我得到了一个例外:

线程“main”java.lang.NoSuchFieldError中出现异常:strictGoodCoNLL
位于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如果在这个问题上没有有用的答案,我怎么能调用类加载器而不产生同样的冲突呢