使用 Java 11 玩 2.2.2
Posted
技术标签:
【中文标题】使用 Java 11 玩 2.2.2【英文标题】:Play 2.2.2 with Java 11 【发布时间】:2019-03-19 13:47:01 【问题描述】:我有一个 Play 2.2.2 项目,我通常使用 activator 1.3.12 运行。现在我更新到 Java 11 并且激活器抱怨如下:
The java installation you have is not up to date
activator requires at least version 1.6+, you have
version 11
Please go to http://www.java.com/getjava/ and download
a valid Java Runtime and install before running activator.
如果我尝试直接使用 sbt 1.2.4 运行应用程序,我会收到未解决的依赖路径错误
Note: Unresolved dependencies path:
[warn] com.typesafe.play:sbt-plugin:2.2.2 (scalaVersion=2.12, sbtVersion=1.0) (/myProject/project/plugins.sbt#L8-9)
[warn] +- default:myProject-build:0.1.0-SNAPSHOT (scalaVersion=2.12, sbtVersion=1.0)
[error] sbt.librarymanagement.ResolveException: unresolved dependency: com.typesafe.play#sbt-plugin;2.2.2: not found
有人对如何让这个旧项目在 Java 11 下运行有任何建议吗?
【问题讨论】:
这不可能,我想。 SBT 1.x 仅适用于 Play >= 2.5,旧的激活器(它只是一种 SBT 启动器)不适用于 Java > 8。只需继续使用 Java 8 JRE。 不仅是 Play 或激活器,Play 和您的项目还有大量依赖项,这些依赖项可能还没有为 Java > 8 做好准备,例如在运行时进行版本检查,使用会导致运行时错误的已弃用/删除的类。 【参考方案1】:以 SBT 为例,记住 SBT 是 Scala 和 Java 项目的开源构建工具,类似于 Java 的 Maven 和 Ant,按照这个思路,Scala 对 Java 的兼容性有最低和最高要求,在此链接中,您可以找到信息:
https://docs.scala-lang.org/overviews/jdk-compatibility/overview.html
我应该将你的 java 版本降级到 10。
祝你好运。
【讨论】:
以上是关于使用 Java 11 玩 2.2.2的主要内容,如果未能解决你的问题,请参考以下文章
玩 2.4 表单字段值绑定到 java.time.LocalDate 类型