我在让PlayFramework使用1.8源码时遇到了问题。
我已经在CentOS上安装了1.8,可以通过检查版本来验证它
java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) Server VM (build 25.11-b03, mixed mode)我已经将源代码添加到我的Build.config中
javaOptions ++= Seq("-Xmx512M", "-Xmx2048M", "-XX:MaxPermSize=2048M", "-source", "1.8", "-target", "1.8")然而,它在任何java 1.8新特性上都有编译错误,比如
myProcess.waitFor(5, TimeUnit.SECONDS); //Compile error new java 8 feature如果我在JAVA_OPTION上设置了标志-showversion,当我启动它时,它会打印出来
8.0
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) Server VM (build 25.11-b03, mixed mode)最终编辑如果我进入播放控制台,我会得到以下输出
play 2.2.2-RC2 built with Scala 2.10.3 (running Java 1.8.0_11), http://www.playframework.com因此,一定是-source和-target选项在某个地方缺省为1.7。
发布于 2014-08-07 19:38:14
问题是我在CentOS上使用替代安装Oracle1.8JDK,它没有创建任何到javac的链接。所以Java有了正确的版本,但javac指向了1.7 OpenJDK
这就是我不得不做的:
cd /etc/alternatives/
ln -s /opt/jdk1.8.0_11/bin/javac javac //Create a symlink to javac
cd /usr/bin
sudo ln -s /etc/alternatives/javac javac //In my /usr/bin create a symlink to javac https://stackoverflow.com/questions/25178675
复制相似问题