Mac OS X Activator 新播放框架错误
Mac OS X Activator New Play Framework Error
我正在 运行使用 Typesafe 1.3.4 的最新激活器安装最新的 Yosemite 10.10.3,我尝试创建一个新的 Scala 项目模板 6,但我无法再 运行没有这个错误的模板。
[info] Loading project definition from /Users/Master/x/x/project
java.lang.UnsupportedClassVersionError: play/runsupport/classloader/ApplicationClassLoaderProvider : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access0(URLClassLoader.java:71)
at java.net.URLClassLoader.run(URLClassLoader.java:361)
at java.net.URLClassLoader.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at play.sbt.run.PlayRun$.<init>(PlayRun.scala:35)
at play.sbt.run.PlayRun$.<clinit>(PlayRun.scala)
at play.sbt.PlaySettings$.defaultSettings$lzycompute(PlaySettings.scala:70)
at play.sbt.PlaySettings$.defaultSettings(PlaySettings.scala:47)
at play.sbt.Play$.projectSettings(Play.scala:26)
at sbt.Load$$anonfun$autoPluginSettings.apply(Load.scala:666)
at sbt.Load$$anonfun$autoPluginSettings.apply(Load.scala:666)
at scala.collection.TraversableLike$$anonfun$flatMap.apply(TraversableLike.scala:251)
at scala.collection.TraversableLike$$anonfun$flatMap.apply(TraversableLike.scala:251)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
at sbt.Load$.autoPluginSettings(Load.scala:666)
at sbt.Load$.sbt$Load$$expandSettings(Load.scala:681)
at sbt.Load$$anonfun$sbt$Load$$expandSettings.apply(Load.scala:682)
at sbt.Load$$anonfun$sbt$Load$$expandSettings.apply(Load.scala:682)
at scala.collection.IndexedSeqOptimized$class.foldl(IndexedSeqOptimized.scala:51)
at scala.collection.IndexedSeqOptimized$class.foldLeft(IndexedSeqOptimized.scala:60)
at scala.collection.mutable.WrappedArray.foldLeft(WrappedArray.scala:34)
at scala.collection.TraversableOnce$class.$div$colon(TraversableOnce.scala:138)
at scala.collection.AbstractTraversable.$div$colon(Traversable.scala:105)
at sbt.Load$.sbt$Load$$expandSettings(Load.scala:682)
at sbt.Load$.resolveProject(Load.scala:684)
at sbt.Load$.finalizeProject(Load.scala:549)
at sbt.Load$.loadTransitive(Load.scala:577)
at sbt.Load$.loadProjects(Load.scala:442)
at sbt.Load$.loadUnit(Load.scala:446)
at sbt.Load$$anonfun$$anonfun$apply.apply(Load.scala:281)
at sbt.Load$$anonfun$$anonfun$apply.apply(Load.scala:281)
at sbt.BuildLoader$$anonfun$componentLoader$$anonfun$apply$$anonfun$apply$$anonfun$apply.apply(BuildLoader.scala:91)
at sbt.BuildLoader$$anonfun$componentLoader$$anonfun$apply$$anonfun$apply$$anonfun$apply.apply(BuildLoader.scala:90)
at sbt.BuildLoader.apply(BuildLoader.scala:140)
at sbt.Load$.loadAll(Load.scala:334)
at sbt.Load$.loadURI(Load.scala:289)
at sbt.Load$.load(Load.scala:285)
at sbt.Load$.load(Load.scala:276)
at sbt.Load$.apply(Load.scala:130)
at sbt.Load$.defaultLoad(Load.scala:36)
at sbt.BuiltinCommands$.doLoadProject(Main.scala:481)
at sbt.BuiltinCommands$$anonfun$loadProjectImpl.apply(Main.scala:475)
at sbt.BuiltinCommands$$anonfun$loadProjectImpl.apply(Main.scala:475)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:58)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:58)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:60)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:60)
at sbt.Command$.process(Command.scala:92)
at sbt.MainLoop$$anonfun$$anonfun$apply.apply(MainLoop.scala:98)
at sbt.MainLoop$$anonfun$$anonfun$apply.apply(MainLoop.scala:98)
at sbt.State$$anon.process(State.scala:184)
at sbt.MainLoop$$anonfun.apply(MainLoop.scala:98)
at sbt.MainLoop$$anonfun.apply(MainLoop.scala:98)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.MainLoop$.next(MainLoop.scala:98)
at sbt.MainLoop$.run(MainLoop.scala:91)
at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:70)
at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:65)
at sbt.Using.apply(Using.scala:24)
at sbt.MainLoop$.runWithNewLog(MainLoop.scala:65)
at sbt.MainLoop$.runAndClearLast(MainLoop.scala:48)
at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:32)
at sbt.MainLoop$.runLogged(MainLoop.scala:24)
at sbt.StandardMain$.runManaged(Main.scala:53)
at sbt.xMain.run(Main.scala:28)
at xsbt.boot.Launch$$anonfun$run.apply(Launch.scala:109)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:128)
at xsbt.boot.Launch$.run(Launch.scala:109)
at xsbt.boot.Launch$$anonfun$apply.apply(Launch.scala:35)
at xsbt.boot.Launch$.launch(Launch.scala:117)
at xsbt.boot.Launch$.apply(Launch.scala:18)
at xsbt.boot.Boot$.runImpl(Boot.scala:41)
at xsbt.boot.Boot$.main(Boot.scala:17)
at xsbt.boot.Boot.main(Boot.scala)
[error] java.lang.UnsupportedClassVersionError: play/runsupport/classloader/ApplicationClassLoaderProvider : Unsupported major.minor version 52.0
这是堆栈跟踪的相关部分:
java.lang.UnsupportedClassVersionError:
play/runsupport/classloader/ApplicationClassLoaderProvider : Unsupported
major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at
表示您安装了Java7,但模板不支持。尝试使用带有 Java 8 的模板。
从 2.4.0 版开始的最新 Play 框架需要 Java 1.8。升级解决。
正如@nkadwa 已经提到的,从 2.4.0 版开始的最新 Play 框架需要 Java 1.8。
值得一提的是,在WindowsOS中,activator
命令使用了JAVA_HOME
环境变量,如果设置了,要找到Java 要使用的实例。
因此,即使您安装了 Java 8,JAVA_HOME
环境变量也可以指向旧版本的 JDK。这可能是出现该错误的原因之一。
设置 JAVA_HOME
变量指向 JDK 的新版本,或者删除 JAVA_HOME
变量(如果您只想使用 JRE)来解决这个问题。
如果您使用的是 playframework 2.4.2,请确保您已将开发机器设置为使用 java 1.8.0+
这就是您将机器设置为在 ubuntu
上使用 java 1.8 的方式
- 设置java版本
sudo update-alternatives --config java
备选方案java有5个选择(提供/usr/bin/java)。
选择路径优先状态
- 0 /usr/lib/jvm/java-8-oracle/jre/bin/java 20004 自动模式
1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 手动模式
2 /usr/lib/jvm/java-7-oracle/jre/bin/java 20002 手动模式
3 /usr/lib/jvm/java-8-oracle/bin/java 20000 手动模式
4 /usr/lib/jvm/java-8-oracle/jre/bin/java 20004 手动模式
5 /usr/lib/jvm/jre1.7.0_45/bin/java 1 手动模式
按回车键保留当前选择[*],或输入选择编号:
2.Set javac版
sudo update-alternatives --config javac
备选方案java有5个选择(提供/usr/bin/java)。
选择路径优先状态
0 /usr/lib/jvm/java-8-oracle/jre/bin/java 20004 自动模式
1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 手动模式
2 /usr/lib/jvm/java-7-oracle/jre/bin/java 20002 手动模式
3 /usr/lib/jvm/java-8-oracle/bin/java 20000 手动模式
4 /usr/lib/jvm/java-8-oracle/jre/bin/java 20004 手动模式
5 /usr/lib/jvm/jre1.7.0_45/bin/java 1 手动模式
按回车键保留当前选择[*],或输入选择编号:
- 将 JAVA_HOME 设置为 java 1.8 源 ( /usr/lib/jvm/java-8-oracle/jre/bin/java )
~/.bashrc
但是对于 Java,我遵循了 https://askubuntu.com/questions/55848/how-do-i-install-oracle-java-jdk-7
中的说明
对我来说已经足够了。
您还可以定义多个 java_home,并且只有其中一个处于活动状态(其余评论)。
假设在你的 bashrc 文件中,你有
导出JAVA_HOME=......jdk1.7
导出JAVA_HOME=......jdk1.8
通知 1.8 已评论。一旦你这样做了
来源 ~/.bashrc
jdk1.7 将在路径中。
您可以通过这种方式轻松切换它们。还有其他更永久的解决方案。我发布的 link 有那个信息。
我正在 运行使用 Typesafe 1.3.4 的最新激活器安装最新的 Yosemite 10.10.3,我尝试创建一个新的 Scala 项目模板 6,但我无法再 运行没有这个错误的模板。
[info] Loading project definition from /Users/Master/x/x/project
java.lang.UnsupportedClassVersionError: play/runsupport/classloader/ApplicationClassLoaderProvider : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access0(URLClassLoader.java:71)
at java.net.URLClassLoader.run(URLClassLoader.java:361)
at java.net.URLClassLoader.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at play.sbt.run.PlayRun$.<init>(PlayRun.scala:35)
at play.sbt.run.PlayRun$.<clinit>(PlayRun.scala)
at play.sbt.PlaySettings$.defaultSettings$lzycompute(PlaySettings.scala:70)
at play.sbt.PlaySettings$.defaultSettings(PlaySettings.scala:47)
at play.sbt.Play$.projectSettings(Play.scala:26)
at sbt.Load$$anonfun$autoPluginSettings.apply(Load.scala:666)
at sbt.Load$$anonfun$autoPluginSettings.apply(Load.scala:666)
at scala.collection.TraversableLike$$anonfun$flatMap.apply(TraversableLike.scala:251)
at scala.collection.TraversableLike$$anonfun$flatMap.apply(TraversableLike.scala:251)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
at sbt.Load$.autoPluginSettings(Load.scala:666)
at sbt.Load$.sbt$Load$$expandSettings(Load.scala:681)
at sbt.Load$$anonfun$sbt$Load$$expandSettings.apply(Load.scala:682)
at sbt.Load$$anonfun$sbt$Load$$expandSettings.apply(Load.scala:682)
at scala.collection.IndexedSeqOptimized$class.foldl(IndexedSeqOptimized.scala:51)
at scala.collection.IndexedSeqOptimized$class.foldLeft(IndexedSeqOptimized.scala:60)
at scala.collection.mutable.WrappedArray.foldLeft(WrappedArray.scala:34)
at scala.collection.TraversableOnce$class.$div$colon(TraversableOnce.scala:138)
at scala.collection.AbstractTraversable.$div$colon(Traversable.scala:105)
at sbt.Load$.sbt$Load$$expandSettings(Load.scala:682)
at sbt.Load$.resolveProject(Load.scala:684)
at sbt.Load$.finalizeProject(Load.scala:549)
at sbt.Load$.loadTransitive(Load.scala:577)
at sbt.Load$.loadProjects(Load.scala:442)
at sbt.Load$.loadUnit(Load.scala:446)
at sbt.Load$$anonfun$$anonfun$apply.apply(Load.scala:281)
at sbt.Load$$anonfun$$anonfun$apply.apply(Load.scala:281)
at sbt.BuildLoader$$anonfun$componentLoader$$anonfun$apply$$anonfun$apply$$anonfun$apply.apply(BuildLoader.scala:91)
at sbt.BuildLoader$$anonfun$componentLoader$$anonfun$apply$$anonfun$apply$$anonfun$apply.apply(BuildLoader.scala:90)
at sbt.BuildLoader.apply(BuildLoader.scala:140)
at sbt.Load$.loadAll(Load.scala:334)
at sbt.Load$.loadURI(Load.scala:289)
at sbt.Load$.load(Load.scala:285)
at sbt.Load$.load(Load.scala:276)
at sbt.Load$.apply(Load.scala:130)
at sbt.Load$.defaultLoad(Load.scala:36)
at sbt.BuiltinCommands$.doLoadProject(Main.scala:481)
at sbt.BuiltinCommands$$anonfun$loadProjectImpl.apply(Main.scala:475)
at sbt.BuiltinCommands$$anonfun$loadProjectImpl.apply(Main.scala:475)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:58)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:58)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:60)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:60)
at sbt.Command$.process(Command.scala:92)
at sbt.MainLoop$$anonfun$$anonfun$apply.apply(MainLoop.scala:98)
at sbt.MainLoop$$anonfun$$anonfun$apply.apply(MainLoop.scala:98)
at sbt.State$$anon.process(State.scala:184)
at sbt.MainLoop$$anonfun.apply(MainLoop.scala:98)
at sbt.MainLoop$$anonfun.apply(MainLoop.scala:98)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.MainLoop$.next(MainLoop.scala:98)
at sbt.MainLoop$.run(MainLoop.scala:91)
at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:70)
at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:65)
at sbt.Using.apply(Using.scala:24)
at sbt.MainLoop$.runWithNewLog(MainLoop.scala:65)
at sbt.MainLoop$.runAndClearLast(MainLoop.scala:48)
at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:32)
at sbt.MainLoop$.runLogged(MainLoop.scala:24)
at sbt.StandardMain$.runManaged(Main.scala:53)
at sbt.xMain.run(Main.scala:28)
at xsbt.boot.Launch$$anonfun$run.apply(Launch.scala:109)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:128)
at xsbt.boot.Launch$.run(Launch.scala:109)
at xsbt.boot.Launch$$anonfun$apply.apply(Launch.scala:35)
at xsbt.boot.Launch$.launch(Launch.scala:117)
at xsbt.boot.Launch$.apply(Launch.scala:18)
at xsbt.boot.Boot$.runImpl(Boot.scala:41)
at xsbt.boot.Boot$.main(Boot.scala:17)
at xsbt.boot.Boot.main(Boot.scala)
[error] java.lang.UnsupportedClassVersionError: play/runsupport/classloader/ApplicationClassLoaderProvider : Unsupported major.minor version 52.0
这是堆栈跟踪的相关部分:
java.lang.UnsupportedClassVersionError:
play/runsupport/classloader/ApplicationClassLoaderProvider : Unsupported
major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at
表示您安装了Java7,但模板不支持。尝试使用带有 Java 8 的模板。
从 2.4.0 版开始的最新 Play 框架需要 Java 1.8。升级解决。
正如@nkadwa 已经提到的,从 2.4.0 版开始的最新 Play 框架需要 Java 1.8。
值得一提的是,在WindowsOS中,activator
命令使用了JAVA_HOME
环境变量,如果设置了,要找到Java 要使用的实例。
因此,即使您安装了 Java 8,JAVA_HOME
环境变量也可以指向旧版本的 JDK。这可能是出现该错误的原因之一。
设置 JAVA_HOME
变量指向 JDK 的新版本,或者删除 JAVA_HOME
变量(如果您只想使用 JRE)来解决这个问题。
如果您使用的是 playframework 2.4.2,请确保您已将开发机器设置为使用 java 1.8.0+
这就是您将机器设置为在 ubuntu
上使用 java 1.8 的方式- 设置java版本 sudo update-alternatives --config java
备选方案java有5个选择(提供/usr/bin/java)。
选择路径优先状态
- 0 /usr/lib/jvm/java-8-oracle/jre/bin/java 20004 自动模式 1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 手动模式 2 /usr/lib/jvm/java-7-oracle/jre/bin/java 20002 手动模式 3 /usr/lib/jvm/java-8-oracle/bin/java 20000 手动模式 4 /usr/lib/jvm/java-8-oracle/jre/bin/java 20004 手动模式 5 /usr/lib/jvm/jre1.7.0_45/bin/java 1 手动模式 按回车键保留当前选择[*],或输入选择编号:
2.Set javac版 sudo update-alternatives --config javac
备选方案java有5个选择(提供/usr/bin/java)。
选择路径优先状态
0 /usr/lib/jvm/java-8-oracle/jre/bin/java 20004 自动模式 1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 手动模式 2 /usr/lib/jvm/java-7-oracle/jre/bin/java 20002 手动模式 3 /usr/lib/jvm/java-8-oracle/bin/java 20000 手动模式 4 /usr/lib/jvm/java-8-oracle/jre/bin/java 20004 手动模式 5 /usr/lib/jvm/jre1.7.0_45/bin/java 1 手动模式 按回车键保留当前选择[*],或输入选择编号:
- 将 JAVA_HOME 设置为 java 1.8 源 ( /usr/lib/jvm/java-8-oracle/jre/bin/java )
~/.bashrc 但是对于 Java,我遵循了 https://askubuntu.com/questions/55848/how-do-i-install-oracle-java-jdk-7
中的说明对我来说已经足够了。
您还可以定义多个 java_home,并且只有其中一个处于活动状态(其余评论)。
假设在你的 bashrc 文件中,你有
导出JAVA_HOME=......jdk1.7
导出JAVA_HOME=......jdk1.8
通知 1.8 已评论。一旦你这样做了
来源 ~/.bashrc
jdk1.7 将在路径中。
您可以通过这种方式轻松切换它们。还有其他更永久的解决方案。我发布的 link 有那个信息。