gpt4 book ai didi

java - 将 Heroku 应用程序更新到 Java 8

转载 作者:行者123 更新时间:2023-11-29 10:01:47 24 4
gpt4 key购买 nike

我有一个与 Java 8 一起使用的 Play 2.2 应用程序,但我无法正常工作。该代码使用 OpenJDK 1.8 在本地为我编译,但是当我尝试将代码推送到 Heroku 时,出现以下错误,这是我早些时候在使用 lambda 运行 OpenJDK 1.7 时在本地遇到的错误。

java.lang.RuntimeException: Unknown constant: 18

我将 system.properties 设置为使用 Java 1.8,我知道这是可行的,因为它以以下文本启动:

Play 2.x - Java app detected
-----> Installing OpenJDK 1.8...done

我是否忘记了更新到 Java 8?
我尝试更新 PATH 以及指定的 here但这没有做任何事情。

最佳答案

Unknown constant: 18 很可能是指 CONSTANT_InvokeDynamic类文件常量池中的标记,其值为 18。这不可能是 JDK 问题,因为即使 Java 7 也能理解该标记。

因此,它表明在您的运行时中运行的字节码操作工具不理解较新的类文件(但尽管版本号未知但仍尝试处理它们)。这适用于 Java 7,因为存在 invokedynamic 功能,但不用于普通 Java 7 类文件(即由 javac 生成)。

既然你知道如果你自己使用字节码操作,它一定是框架的一部分,即你命名为 heroku 和 playframework。因此,您的问题不是更新 JDK,而是将框架更新为支持 Java-8 的版本(如果此类版本已经存在)。

关于java - 将 Heroku 应用程序更新到 Java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23622426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com