在可执行文件.JAR中组织库和资源

时间:2016-08-01 17:28:38

标签: java eclipse jar libraries directory-structure

我想使用Eclipse重新组织可执行文件.JAR(资源,外部库和应用程序.class文件)中的所有文件。

我有什么:

My.JAR

> folder "com" for external library 1 (com.apple.***)

> folder "org" for external library 2 (org.javasypt.***)

> folder "main" (package)
    >> .class files

> folder "resources"
    >> all resources files (images, texts...)

> folder "META-INF"
    >> "MANIFEST.MF" file

我想要的是:

My.JAR

> folder "main" 
    >> folder "resources"
        >>> all resources files

    >> folder "libraries"
        >>> external library 1 (com.apple.***)
        >>> external library 2 (org.javasypt.***)

    >> .class files

> folder "META-INF"
    >> "MANIFEST.MF" file

有可能获得这个吗?谢谢!

1 个答案:

答案 0 :(得分:0)

不,JAR file specification决定了一个特定的结构。您正在尝试为运行时混合组织为人类和组织,但这两个概念是截然不同的。通过各种方式,根据您的需要组织您的源代码,但您不能期望运行时(JVM)理解任何任意结构。这就是为什么存在构建工具(gradle,maven,ant等)以帮助准确生成JAR规范结构的原因。

要意识到在您的示例中,orgcom不是真正的文件夹,而是他们在包结构中的节点(级别)。对于main也是如此 - 它只是一个包。

resources是唯一具有一定灵活性的东西,因为只要从中读取内容的代码知道要期待的名称,就可以命名为任何你想要的东西。

META-INF清单文件由规范决定,无法更改或重新定位。