java - 具有重复依赖项的可运行 JAR

标签 java jar dependencies executable-jar

我正在尝试使用 Eclipse 创建可运行的 JAR,但遇到了问题。 Eclipse 工作区包含两个独立的项目,它们依赖于同一个库。我可以创建可运行的 JAR,但问题是当我运行它时收到 java.lang.NoSuchMethodError 异常。

我相信我收到了 java.lang.NoSuchMethodError 异常,因为 libraries are different versions .是否有解决此问题的通用解决方案?如果没有,您会建议我做什么?

最佳答案

如果主要版本号发生变化,则意味着向后兼容性可能发生了变化。

您可以尝试使用最新版本并希望他们只是添加了方法和旧的工作方式,但即使没有抛出 NoSuchMethod 异常也不能保证(也许使用新的 API 您应该调用不同的方法来得到相同的结果)。

我会联系图书馆的供应商,询问他们兼容性是否被破坏。如果他们不回答或者它坏了,而你有源代码,那么唯一的可能性就是重构其中一个库(可能是 1.0); v.g.将其全部放入新数据包 v1 中。然后,您将不得不更改依赖于它的项目。

如果以上方法均无效,那么解决方案将是一个 OSGi 容器,或者将项目 A 和项目 B 设置为两个不同的可执行文件,并将项目 B 设置为响应项目 A 消息的服务器。凌乱

关于java - 具有重复依赖项的可运行 JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122324/

相关文章:

Android库项目——混淆

ant - Apache Ant/NetBeans - build.xml 中的语句将 dist/myfile.jar 复制到另一个文件夹

c# - Unity依赖注入(inject)解决返回System.NullReferenceException

java - 从 C# 客户端调用带有对象参数的 Java Soap Web 服务方法

java - 防止加速器在输入子项时触发

Java opencv - 错误 - java.library.path 中没有 jniopencv_core

json - Ember-cli-dependency-checker - 无效版本 : *

java - Android fragment getArguments 返回 null

java - 安全异常 :no manifiest section for signature file entry

java - Maven 中未使用/未声明的依赖项是什么?该怎么办?