运行 使用 JDK 1.7 播放应用程序时出现 UnsupportedClassVersionError
UnsupportedClassVersionError on running play application with JDK 1.7
刚开始学习 Play 框架来满足我的项目要求,我的项目只构建在 JDK 1.7 上,所以我下载了 Play 2.3.9 版本并通过键入 activator new
创建了一个示例项目。然后移动到示例项目目录并执行activator run
。然后我看到 JDk 不兼容的异常。我必须在哪里进行更改才能处理此问题?
日志:
[info] Loading project definition from E:\workspace\play\first-app\project
[info] Set current project to first-app (in build file:/E:/workspace/play/first-app/)
java.lang.UnsupportedClassVersionError: com/typesafe/config/ConfigException : 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 com.typesafe.sbt.web.SbtWeb$$anonfun$com$typesafe$sbt$web$SbtWeb$$load.apply(SbtWeb.scala:535)
at com.typesafe.sbt.web.SbtWeb$$anonfun$com$typesafe$sbt$web$SbtWeb$$load.apply(SbtWeb.scala:535)
at scala.Option.fold(Option.scala:157)
at com.typesafe.sbt.web.SbtWeb$.com$typesafe$sbt$web$SbtWeb$$load(SbtWeb.scala:549)
at com.typesafe.sbt.web.SbtWeb$$anonfun$globalSettings$$anonfun$apply.apply(SbtWeb.scala:143)
at com.typesafe.sbt.web.SbtWeb$$anonfun$globalSettings$$anonfun$apply.apply(SbtWeb.scala:143)
at scala.Function1$$anonfun$andThen.apply(Function1.scala:55)
at sbt.Project$.setProject(Project.scala:319)
at sbt.BuiltinCommands$.doLoadProject(Main.scala:484)
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: com/typesafe/config/ConfigException : Unsupported major.minor version 52.0
52 = Java 8, 51 = Java 7.. 在 com.typesafe.config.ConfigException
上;所以你的图书馆太新了。
尽管 java 和 javac:
我似乎使用了相同的版本
java -version
java 版本“1.8.0_51”
javac -version
javac 1.8.0_51
我的问题是 (Linux Mint 17.1) 我已经安装了 oracle-java7
和 oracle-java8
所以一定是某个地方配置错误。
我卸载了 oracle-java7
,一切正常。
确实@cib 所说的解决了我的问题。
只需修改我的项目目录中的文件plugins.sbt
。
换行:
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.2")
至:
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.9")
并且您将不会再执行 activator run
时出现任何错误。
描述:
- Java SE 8 = 52
- Java SE 7 = 51
- Java SE 6.0 = 50
Java 8 的主要版本是 52,这意味着如果我们从 Java 8 安装 运行 javac 命令,它将默认生成一个 class 的主要版本为 52。但是,如果我们在 JRE 7 中 运行 class 文件,我们将得到 "Unsupported major.minor version 52.0".
解法:
%JAVA_HOME%
中配置错误
java -version
java版本“1.8.0_45”
javac -version
javac 1.8.0_45
@echo %JAVA_HOME%
C:\Program Files\Java\jdk1.7.0_75
临时设置路径
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_45
@echo %JAVA_HOME%
C:\Program Files\Java\jdk1.8.0_45
ConfigException发生是因为从1.3.0版本开始,com.typesafe.config库只兼容JDK8;参见 README。您需要降级库版本。使用
"com.typesafe" % "config" % "1.2.1"
遇到类似问题,已通过更改版本解决
//addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.0")
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.9")
通过上述更改,以下异常得到解决(注意:系统有 java 7)
更高版本出现异常:
[info] Set current project to helloworld (in build file:/Users/suniltonger/Projects/play/helloworld/helloworld/)
java.lang.UnsupportedClassVersionError: com/typesafe/config/ConfigException : 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 com.typesafe.sbt.web.SbtWeb$$anonfun$com$typesafe$sbt$web$SbtWeb$$load.apply(SbtWeb.scala:559)
at com.typesafe.sbt.web.SbtWeb$$anonfun$com$typesafe$sbt$web$SbtWeb$$load.apply(SbtWeb.scala:559)
at scala.Option.fold(Option.scala:157)
at com.typesafe.sbt.web.SbtWeb$.com$typesafe$sbt$web$SbtWeb$$load(SbtWeb.scala:573)
at com.typesafe.sbt.web.SbtWeb$$anonfun$globalSettings$$anonfun$apply.apply(SbtWeb.scala:143)
at com.typesafe.sbt.web.SbtWeb$$anonfun$globalSettings$$anonfun$apply.apply(SbtWeb.scala:143)
at scala.Function1$$anonfun$andThen.apply(Function1.scala:55)
at sbt.Project$.setProject(Project.scala:319)
at sbt.BuiltinCommands$.doLoadProject(Main.scala:503)
at sbt.BuiltinCommands$$anonfun$loadProjectImpl.apply(Main.scala:484)
at sbt.BuiltinCommands$$anonfun$loadProjectImpl.apply(Main.scala:484)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:59)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:59)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:61)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:61)
at sbt.Command$.process(Command.scala:93)
at sbt.MainLoop$$anonfun$$anonfun$apply.apply(MainLoop.scala:96)
at sbt.MainLoop$$anonfun$$anonfun$apply.apply(MainLoop.scala:96)
at sbt.State$$anon.process(State.scala:184)
at sbt.MainLoop$$anonfun.apply(MainLoop.scala:96)
at sbt.MainLoop$$anonfun.apply(MainLoop.scala:96)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.MainLoop$.next(MainLoop.scala:96)
at sbt.MainLoop$.run(MainLoop.scala:89)
at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:68)
at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:63)
at sbt.Using.apply(Using.scala:24)
at sbt.MainLoop$.runWithNewLog(MainLoop.scala:63)
at sbt.MainLoop$.runAndClearLast(MainLoop.scala:46)
at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:30)
at sbt.MainLoop$.runLogged(MainLoop.scala:22)
at sbt.StandardMain$.runManaged(Main.scala:54)
at sbt.xMain.run(Main.scala:29)
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: com/typesafe/config/ConfigException : Unsupported major.minor version 52.0
[error] Use 'last' for the full log.
[debug] > load-failed
刚开始学习 Play 框架来满足我的项目要求,我的项目只构建在 JDK 1.7 上,所以我下载了 Play 2.3.9 版本并通过键入 activator new
创建了一个示例项目。然后移动到示例项目目录并执行activator run
。然后我看到 JDk 不兼容的异常。我必须在哪里进行更改才能处理此问题?
日志:
[info] Loading project definition from E:\workspace\play\first-app\project
[info] Set current project to first-app (in build file:/E:/workspace/play/first-app/)
java.lang.UnsupportedClassVersionError: com/typesafe/config/ConfigException : 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 com.typesafe.sbt.web.SbtWeb$$anonfun$com$typesafe$sbt$web$SbtWeb$$load.apply(SbtWeb.scala:535)
at com.typesafe.sbt.web.SbtWeb$$anonfun$com$typesafe$sbt$web$SbtWeb$$load.apply(SbtWeb.scala:535)
at scala.Option.fold(Option.scala:157)
at com.typesafe.sbt.web.SbtWeb$.com$typesafe$sbt$web$SbtWeb$$load(SbtWeb.scala:549)
at com.typesafe.sbt.web.SbtWeb$$anonfun$globalSettings$$anonfun$apply.apply(SbtWeb.scala:143)
at com.typesafe.sbt.web.SbtWeb$$anonfun$globalSettings$$anonfun$apply.apply(SbtWeb.scala:143)
at scala.Function1$$anonfun$andThen.apply(Function1.scala:55)
at sbt.Project$.setProject(Project.scala:319)
at sbt.BuiltinCommands$.doLoadProject(Main.scala:484)
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: com/typesafe/config/ConfigException : Unsupported major.minor version 52.0
52 = Java 8, 51 = Java 7.. 在 com.typesafe.config.ConfigException
上;所以你的图书馆太新了。
尽管 java 和 javac:
我似乎使用了相同的版本java -version
java 版本“1.8.0_51”javac -version
javac 1.8.0_51
我的问题是 (Linux Mint 17.1) 我已经安装了 oracle-java7
和 oracle-java8
所以一定是某个地方配置错误。
我卸载了 oracle-java7
,一切正常。
确实@cib 所说的解决了我的问题。
只需修改我的项目目录中的文件plugins.sbt
。
换行:
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.2")
至:
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.9")
并且您将不会再执行 activator run
时出现任何错误。
描述:
- Java SE 8 = 52
- Java SE 7 = 51
- Java SE 6.0 = 50
Java 8 的主要版本是 52,这意味着如果我们从 Java 8 安装 运行 javac 命令,它将默认生成一个 class 的主要版本为 52。但是,如果我们在 JRE 7 中 运行 class 文件,我们将得到 "Unsupported major.minor version 52.0".
解法:
%JAVA_HOME%
中配置错误java -version
java版本“1.8.0_45”javac -version
javac 1.8.0_45@echo %JAVA_HOME%
C:\Program Files\Java\jdk1.7.0_75
临时设置路径
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_45
@echo %JAVA_HOME%
C:\Program Files\Java\jdk1.8.0_45
ConfigException发生是因为从1.3.0版本开始,com.typesafe.config库只兼容JDK8;参见 README。您需要降级库版本。使用
"com.typesafe" % "config" % "1.2.1"
遇到类似问题,已通过更改版本解决
//addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.0")
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.9")
通过上述更改,以下异常得到解决(注意:系统有 java 7)
更高版本出现异常:
[info] Set current project to helloworld (in build file:/Users/suniltonger/Projects/play/helloworld/helloworld/)
java.lang.UnsupportedClassVersionError: com/typesafe/config/ConfigException : 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 com.typesafe.sbt.web.SbtWeb$$anonfun$com$typesafe$sbt$web$SbtWeb$$load.apply(SbtWeb.scala:559)
at com.typesafe.sbt.web.SbtWeb$$anonfun$com$typesafe$sbt$web$SbtWeb$$load.apply(SbtWeb.scala:559)
at scala.Option.fold(Option.scala:157)
at com.typesafe.sbt.web.SbtWeb$.com$typesafe$sbt$web$SbtWeb$$load(SbtWeb.scala:573)
at com.typesafe.sbt.web.SbtWeb$$anonfun$globalSettings$$anonfun$apply.apply(SbtWeb.scala:143)
at com.typesafe.sbt.web.SbtWeb$$anonfun$globalSettings$$anonfun$apply.apply(SbtWeb.scala:143)
at scala.Function1$$anonfun$andThen.apply(Function1.scala:55)
at sbt.Project$.setProject(Project.scala:319)
at sbt.BuiltinCommands$.doLoadProject(Main.scala:503)
at sbt.BuiltinCommands$$anonfun$loadProjectImpl.apply(Main.scala:484)
at sbt.BuiltinCommands$$anonfun$loadProjectImpl.apply(Main.scala:484)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:59)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:59)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:61)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:61)
at sbt.Command$.process(Command.scala:93)
at sbt.MainLoop$$anonfun$$anonfun$apply.apply(MainLoop.scala:96)
at sbt.MainLoop$$anonfun$$anonfun$apply.apply(MainLoop.scala:96)
at sbt.State$$anon.process(State.scala:184)
at sbt.MainLoop$$anonfun.apply(MainLoop.scala:96)
at sbt.MainLoop$$anonfun.apply(MainLoop.scala:96)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.MainLoop$.next(MainLoop.scala:96)
at sbt.MainLoop$.run(MainLoop.scala:89)
at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:68)
at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:63)
at sbt.Using.apply(Using.scala:24)
at sbt.MainLoop$.runWithNewLog(MainLoop.scala:63)
at sbt.MainLoop$.runAndClearLast(MainLoop.scala:46)
at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:30)
at sbt.MainLoop$.runLogged(MainLoop.scala:22)
at sbt.StandardMain$.runManaged(Main.scala:54)
at sbt.xMain.run(Main.scala:29)
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: com/typesafe/config/ConfigException : Unsupported major.minor version 52.0
[error] Use 'last' for the full log.
[debug] > load-failed