我在eclipse中有一个Java NLP项目(比如X),它在maven和amp;中有依赖关系。还有一些罐子外部添加到buildpath。
现在我使用java swing为这个项目(x)构建了UI,这是eclipse中的另一个项目(比如说Y)。
当我运行项目Y(单击按钮时调用项目X)会给我带来错误,如
java.lang.NoClassDefFoundError: EDU /斯坦福/ NLP / IE / NERClassifierCombiner
我认为是因为,项目Y无法找到/识别我在项目X中添加的外部jar。
我已经尝试将所有这些外部jar添加到Project Y的构建路径中,但没有任何效果。
您能否帮我弄清楚如何处理这些依赖性问题。 自4天以来一直在挣扎。
谢谢。
答案 0 :(得分:1)
您需要先通过maven添加外部jar。 我可以想到三种方法。
<repository> <id>lib</id> <name>lib</name> <releases> <enabled>true</enabled> <checksumPolicy>ignore</checksumPolicy> </releases> <snapshots> <enabled>false</enabled> </snapshots> <url>file://${project.basedir}/lib</url> </repository>
<dependency> <groupId>myjar_1.0</groupId> <artifactId>myjar_1.0</artifactId> <scope>system</scope> <version>1.0</version> <systemPath>${basedir}\src\lib\myjar_1.0.jar</systemPath> </dependency>
尽管不鼓励采用第二种和第三种方法。
另外,考虑使用maven shade插件制作一个胖罐,这样,所有必需的罐子都已经存在于你的罐子里。
答案 1 :(得分:0)
我遇到了类似的问题。但我发现我的问题是maven依赖,而不是外部jar 在我的情况下,我没有创建主项目(即你的Y)作为Maven项目,这就是为什么它不起作用。我将它(Y)转换为Maven项目的时刻,我的代码开始像魔术一样工作。
我只需在项目Y中添加项目X的lib
文件夹。
希望这也能解决你的问题。