UnsupportedClassVersionError on running play application with JDK 1.7

后端 未结 6 1898
青春惊慌失措
青春惊慌失措 2020-12-24 05:40

Just now started learning Play framework for my project requirement and my project only build on JDK 1.7 so I have downloaded Play 2.3.9 ve

相关标签:
6条回答
  • 2020-12-24 06:13

    52 = Java 8, 51 = Java 7.. On com.typesafe.config.ConfigException; so you have a too new library.

    0 讨论(0)
  • 2020-12-24 06:14

    Although it seemed I was using the same version for java and javac:

    • java -version java version "1.8.0_51"
    • javac -version javac 1.8.0_51

    My problem was (Linux Mint 17.1) that I had installed oracle-java7 and oracle-java8 so somewhere there must be a misconfiguration.

    I uninstalled oracle-java7 and everything worked fine to me.

    0 讨论(0)
  • 2020-12-24 06:15

    Description :

    • Java SE 8 = 52
    • Java SE 7 = 51
    • Java SE 6.0 = 50

    Java 8 has major version 52, which means if we run javac command from Java 8 installation, it will by default generate a class with major version 52. However, if we run class file in JRE 7, we will get "Unsupported major.minor version 52.0".

    Solution :

    There was a mis configuration in %JAVA_HOME%

    • java -version java version "1.8.0_45"

    • javac -version javac 1.8.0_45

    • @echo %JAVA_HOME% C:\Program Files\Java\jdk1.7.0_75

    To set the path temporary

    • set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_45

    • @echo %JAVA_HOME% C:\Program Files\Java\jdk1.8.0_45

    0 讨论(0)
  • 2020-12-24 06:21

    Faced similar issue, resolved by changing version

    //addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.0")
    addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.9")
    

    With above changes below exception got resolved (note: system has java 7)

    Exception got with higher version:

    [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.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.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$1.apply(SbtWeb.scala:559)
        at com.typesafe.sbt.web.SbtWeb$$anonfun$com$typesafe$sbt$web$SbtWeb$$load$1.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$1$$anonfun$apply$1.apply(SbtWeb.scala:143)
        at com.typesafe.sbt.web.SbtWeb$$anonfun$globalSettings$1$$anonfun$apply$1.apply(SbtWeb.scala:143)
        at scala.Function1$$anonfun$andThen$1.apply(Function1.scala:55)
        at sbt.Project$.setProject(Project.scala:319)
        at sbt.BuiltinCommands$.doLoadProject(Main.scala:503)
        at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:484)
        at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:484)
        at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:59)
        at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:59)
        at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:61)
        at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:61)
        at sbt.Command$.process(Command.scala:93)
        at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:96)
        at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:96)
        at sbt.State$$anon$1.process(State.scala:184)
        at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:96)
        at sbt.MainLoop$$anonfun$1.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$1.apply(MainLoop.scala:68)
        at sbt.MainLoop$$anonfun$runWithNewLog$1.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$1.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$1.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
    
    0 讨论(0)
  • 2020-12-24 06:26

    ConfigException occurs because from version 1.3.0, com.typesafe.config library is only compatible with JDK8; see README. You need to downgrade the library version. Use

    "com.typesafe" % "config" % "1.2.1"
    
    0 讨论(0)
  • 2020-12-24 06:35

    Indeed what @cib is saying solves my problem. Just modify the file plugins.sbt in my projet directory.

    Change the line :

    addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.2")

    to:

    addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.9")

    and you'll not get any errors doing activator run again.

    0 讨论(0)
提交回复
热议问题