我在使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。
答案 0 :(得分:0)
问题在于我使用替代方法在CentOS上安装Oracle 1.8 JDK,但它没有创建任何指向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