已编译Jar文件中包含的根目录信息



我有一个简单的'Hello World'命令行Java应用程序。我从命令行构建.jar—没有使用IDE。我发现,如果根目录不同(即/hello/vs/hello/with/more/dirs/),最终的.jar文件并不完全相同。(我用Unix的diff实用程序比较了这两个工具)。看起来根目录被编码到.jar文件中。

有人能证明这是真的吗?

.jar文件中还有其他编码吗,比如时间戳?

是否有办法防止路径被编码?

jar文件只是一个zip文件(可能加上一个清单)。它包含的文件列表与zip文件完全相同。你无法阻止这种情况的发生。

如果您不希望您的文件在jar中的某个目录中,那么从您的文件所在的目录中打包它。如果你更熟悉zip并且不需要manifest,你也可以使用它。

在Wikipedia上的jar文件文章中有一个关于什么是jar文件的很好的概述。

最新更新