我有一个简单的'Hello World'命令行Java应用程序。我从命令行构建.jar - 没有使用IDE。我发现如果根目录不同(即/ hello / vs. / hello / with / more / dirs /),则最终的.jar文件并不完全相同。 (我将两者与Unix diff实用程序进行了比较)。似乎根目录编码到.jar文件中。
任何人都可以验证是真的吗?
.jar文件中是否还有其他编码的内容,例如时间戳?
有没有办法阻止路径被编码?
答案 0 :(得分:2)
jar文件只是一个zip文件(可能还有一个清单)。它包含的文件列表与zip文件完全相同。你无能为力阻止这一点。
如果您不希望文件位于jar中的目录中,请从文件所在的目录中将其打包。如果您对zip更熟悉并且不需要清单,那么您也可以使用它。
在维基百科上的JAR file文章中,可以很好地概述jar文件的内容。