【发布时间】:2017-06-17 14:57:54
【问题描述】:
我用 Java 编写我的 AWS Lambda 函数。 我用来上传我的 lambda 的工具 (Terraform) 想要使用我的 jar 文件的 SHA-256 哈希来跟踪是否需要上传新版本的 lambda。
问题是,不同操作系统平台(Windows 和 Linux)上的不同 JDK 创建的字节码略有不同(即使使用相同的“更新”版本的 JDK)。这意味着,如果我在 Windows 上上传 lambda,然后在 Linux 上重新运行该进程 - 它会检测到 jar 的不同哈希码并不必要地重新上传 lambda jar。
问题: 如何强制 javac 在不同的 OS 平台上创建相同的字节码?
【问题讨论】:
-
略有不同如何?
-
^这个。能否提供两个示例 .class 文件?
-
发出的二进制内容略有不同。当我在 winmerge 中区分它们时,一些非文本字节是不同的。我会尝试发布屏幕截图。
-
不开玩笑。 “发出的二进制内容略有不同”如何? 您对我们隐瞒的“不同的字节码”和“发出的二进制内容不同”之间有什么区别吗?还是你只是在无意义地重复自己?并且不要在此处发布屏幕截图。做一些工作:分析差异并在此处描述。
标签: java java-8 aws-lambda