同时使用iText7和iText2.17

同时使用iText7和iText2.17,itext,itextpdf,Itext,Itextpdf,我们的项目已经使用iText2.17很长时间了。现在我们想在PDF中添加数字签名,我们更喜欢使用iText7。iText

我们的项目已经使用iText2.17很长时间了。现在我们想在PDF中添加数字签名,我们更喜欢使用iText7。iText<5.3和5.3+库能否一起使用?类加载器或所有不同于其前身的包中是否会出现问题?

您的问题开始时很好,但随后会变得混乱

  • 您可以将iText 2与iText 5结合使用
  • 您可以将iText 2与iText 7结合使用
  • 您可以将iText 5与iText 7结合使用
不能说您可以同时使用<5.3版本和>=5.3版本。例如:您不能同时使用5.0.0和5.5.9,因为它们具有相同的主版本号。包名称中会出现冲突


总结:所有主要版本都有不同的软件包名称,因此您可以相邻使用主要版本,而不会产生冲突。

您的问题开头很好,但随后会变得混乱

  • 您可以将iText 2与iText 5结合使用
  • 您可以将iText 2与iText 7结合使用
  • 您可以将iText 5与iText 7结合使用
不能说您可以同时使用<5.3版本和>=5.3版本。例如:您不能同时使用5.0.0和5.5.9,因为它们具有相同的主版本号。包名称中会出现冲突


总结:所有主要版本都有不同的软件包名称,因此您可以相邻使用主要版本而不会发生冲突。

@Cybermonk请注意,您应该只对其中一个版本使用与安全相关的内容(数字签名,…),因为不同的iText版本依赖于不同版本的BouncyCastle(特别是iText 2.x版本依赖于旧版本),它们不能在同一类路径中共存。我有一个问题可能与您所说的有关。ExternalDigest digest=new BouncyCastleDigest();抛出类未找到异常。我的类路径中有bouncycastle bcprov-ext-jdk15on-154,我使用的是iText 5.5。它们兼容吗?正如您在iText POM中看到的,iText 5使用的是bouncycastle 1.49。@但是,请注意,您应该使用与安全相关的东西(数字签名,…)因为不同的iText版本依赖于不同版本的BouncyCastle(特别是iText 2.x版本依赖于旧版本),不能在同一类路径中共存,所以只能使用其中一个版本。我有一个问题可能与您所说的有关。ExternalDigest digest=new BouncyCastleDigest();引发类未找到异常。我的类路径中有bouncycastle bcprov-ext-jdk15on-154,我使用的是iText 5.5。它们兼容吗?正如您在iText POM中看到的,iText 5使用的是bouncycastle 1.49。