web-dev-qa-db-ja.com

JDK 1.7でPlayアプリケーションを実行する際のUnsupportedClassVersionError

プロジェクト要件に合わせて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.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:535)
        at com.typesafe.sbt.web.SbtWeb$$anonfun$com$typesafe$sbt$web$SbtWeb$$load$1.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$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:484)
        at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:475)
        at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:475)
        at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:58)
        at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:58)
        at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:60)
        at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:60)
        at sbt.Command$.process(Command.scala:92)
        at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:98)
        at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:98)
        at sbt.State$$anon$1.process(State.scala:184)
        at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:98)
        at sbt.MainLoop$$anonfun$1.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$1.apply(MainLoop.scala:70)
        at sbt.MainLoop$$anonfun$runWithNewLog$1.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$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
35
Pokuri

52 = Java 8、8、51 = Java 7 .. On com.typesafe.config.ConfigException ;あまりにも新しいライブラリがあります。

35
Joop Eggen

説明:

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

Java 8にはメジャーバージョン52があります。つまり、Java 8インストールからjavacコマンドを実行すると、デフォルトでメジャーバージョン52のクラスが生成されます。ただし、JRE 7でクラスファイルを実行する場合、「サポートされていないmajor.minorバージョン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

14
Ronak Agrawal

バージョン1.3.0から、com.typesafe.configライブラリはJDK8とのみ互換性があるため、ConfigExceptionが発生します。 [〜#〜] readme [〜#〜] を参照してください。ライブラリバージョンをダウングレードする必要があります。つかいます

"com.typesafe" % "config" % "1.2.1"
2
Rahul Singhai

バージョンを変更することで解決した同様の問題に直面

//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.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
1
Sunil Tonger

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そして、すべてが私にうまくいった。

1
soutoner

実際、@ cibが言っていることは私の問題を解決します。私のprojetディレクトリでファイル_plugins.sbt_を修正するだけです。

行を変更します。

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

に:

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

再度_activator run_を実行してもエラーは発生しません。

0
Amélie Medem