k26*_*6dr 1 java heroku playframework java-8
我有一个Play 2.2
我正在使用Java 8 的应用程序,我无法上班.代码使用OpenJDK 1.8为我本地编译,但是当我尝试将代码推送到Heroku时,我得到以下错误,这是我在本地早些时候出现的错误,当我在意外运行OpenJDK 1.7 with lambdas时.
java.lang.RuntimeException: Unknown constant: 18
Run Code Online (Sandbox Code Playgroud)
我设置system.properties
使用Java 1.8,我知道这是有效的,因为它启动时使用以下文本:
Play 2.x - Java app detected
-----> Installing OpenJDK 1.8...done
Run Code Online (Sandbox Code Playgroud)
有没有我忘记更新到Java 8的东西?
我尝试更新PATH以及此处指定但没有做任何事情.
Unknown constant: 18
最可能是指CONSTANT_InvokeDynamic
类文件的常量池中具有该值的标记18
.这不是JDK问题,因为即使Java 7也能理解该标记.
因此,它是运行时运行的字节代码操作工具的指示器,不了解较新的类文件(但尝试处理它们,尽管版本号未知).这适用于Java 7,因为该invokedynamic
功能存在,但不与普通的Java 7类文件一起使用(即由其生成javac
).
既然你知道自己是否使用了字节码操作,它必须是框架的一部分,即你命名为heroku和playframework.所以你的问题不是更新JDK,而是将框架更新为支持Java-8的版本,如果这些版本已经存在的话.
归档时间: |
|
查看次数: |
3303 次 |
最近记录: |