質問: scala-playframeworkでwebアプリを開発しているのですが、今まではビルドが通っていたのですが、急にjavaで以下のような実行時エラーが出て強制終了するようになりました。 ### エラー内容 ``` Uncaught error from thread [application-akka.actor.default-dispatcher-10]: controllers/routes has been compiled by a more recent version of the Java Runtime (class file version 56.0), this version of the Java Runtime only recognizes class file versions up to 52.0, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[application] java.lang.UnsupportedClassVersionError: controllers/routes has been compiled by a more recent version of the Java Runtime (class file version 56.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) ... .. . ``` ### 試したこと `compiled by a more recent version of the Java Runtime (class file version 56.0)`とあるので(過去に似た記事などを参考に)、javaとjavacのバージョンが違っているのかなと思いコンソール上で確認したのですが、 ``` > javac -version java version "1.8.0_221" > java -version java version "1.8.0_221" Java(TM) SE Runtime Environment (build 1.8.0_221-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode) ``` となっており、バージョンは同じなのにコンパイルされるときに別のバージョンを使っているみたいです。intelliJのコンパイラ設定で`--release 8`オプションを付けたりしてみましたがうまくいきませんでした。クラスのバージョンを見るに別にインストールした12の方(環境変数には設定していない)を使っているのかなと思ってみたり...。 どなたか原因がわかる方いましたら教えてください。 ### 環境 Windows10 Java: Javaのインストールディレクトリに以下のファイル jdk1.8.0_221 jdk1.2.0.1 jre1.8.0_221
回答: 個人的な環境すぎて自己解決法を書いてもあまり意味がないかもしれませんが...一応... どうやらgitで管理していたサブモジュール側の方が古いままだったのが原因でした。(そちら側の設定が更新されてなかった?) リポジトリを分離してて、親ディレクトリが子ディレクトリのリポジトリを参照するようにしている 解決した方法としては `git submodule update`をかましただけです。