将嵌套jar添加到类路径中

Java文档包含关于将嵌套jar添加到类路径中的注释。

要将JAR文件中的JAR文件中的类加载到类路径中,您必须编写自定义代码来加载这些类。

有很多工具可以做到这一点,比如这里和这里列出的工具。

  • 这些工具是否可以通过从嵌套罐中提取类并将提取路径添加到类路径中? 还是这不仅仅是简单地解压档案?
  • manifest.mf类路径可以指向本地文件系统,但不在其自己的存档中,是否存在限制的技术原因?

  • 如果您使用Maven,另一种选择是Shade Mojo。 它将爆炸所有JAR,允许其内容与您的代码一起打包。 它也具有其他魔力,比如将依赖关系移动到自定义包中以避免冲突和合并META-INF中找到的文件。

    其中一个主要问题是,通常JAR会将工件暴露在完全相同的位置。 对于允许通过ServiceLoader进行扩展的(通常是JDK)系统,这可能会产生问题。 这些文件需要智能合并/连接。

    另一个可能影响微妙的,可能导致错误的API是ClassLoader.getResources(String)。

    如果您使用SecrutiyManager ,安全域可能会变得更加复杂。

    tl; dr这是一个主要由ClassLoading API驱动的限制

    链接地址: http://www.djcxy.com/p/65803.html

    上一篇: Adding nested jars into the classpath

    下一篇: Image not displayed on JasperReports Server