我知道存在版本冲突。只想让别人告诉我如何解决它。在之前的stackoverflow帖子中没有人告诉解决方案。
版本: Ubuntu:12.04.1 LTS java:1.6.0_24(OpenJDK) javac:1.7.0_07(OpenJDK)
haider@haider-desktop:~/Documents/projects/java-projects/mytestapp$ play
[info] Loading project definition from /home/haider/Documents/projects/java-projects/mytestapp/project
[info] Set current project to mytestapp (in build file:/home/haider/Documents/projects/java-projects/mytestapp/)
_ _
_ __ | | __ _ _ _| |
| '_ \| |/ _' | || |_|
| __/|_|\____|\__ (_)
|_| |__/
play! 2.0.4, http://www.playframework.org
> Type "help play" or "license" for more information.
> Type "exit" or use Ctrl+D to leave this console.
[mytestapp] $ run
--- (Running the application from SBT, auto-reloading is enabled) ---
[info] play - Listening for HTTP on port 9000...
(Server started, use Ctrl+D to stop and go back to the console...)
[info] Compiling 5 Scala sources and 2 Java sources to /home/haider/Documents/projects/libraries/play-2.0.4/samples/java/helloworld/target/scala-2.9.1/classes...
[warn] Problem processing dependencies of source /home/haider/Documents/projects/libraries/play-2.0.4/samples/java/helloworld/target/scala-2.9.1/src_managed/main/controllers/routes.java : java.lang.UnsupportedClassVersionError: controllers/routes : Unsupported major.minor version 51.0
[warn] Problem processing dependencies of source /home/haider/Documents/projects/libraries/play-2.0.4/samples/java/helloworld/target/scala-2.9.1/src_managed/main/controllers/routes.java : java.lang.UnsupportedClassVersionError: controllers/routes$javascript : Unsupported major.minor version 51.0
[warn] Problem processing dependencies of source /home/haider/Documents/projects/libraries/play-2.0.4/samples/java/helloworld/target/scala-2.9.1/src_managed/main/controllers/routes.java : java.lang.UnsupportedClassVersionError: controllers/routes : Unsupported major.minor version 51.0
[warn] Problem processing dependencies of source /home/haider/Documents/projects/libraries/play-2.0.4/samples/java/helloworld/target/scala-2.9.1/src_managed/main/controllers/routes.java : java.lang.UnsupportedClassVersionError: controllers/routes$ref : Unsupported major.minor version 51.0
[warn] Problem processing dependencies of source /home/haider/Documents/projects/libraries/play-2.0.4/samples/java/helloworld/target/scala-2.9.1/src_managed/main/controllers/routes.java : java.lang.UnsupportedClassVersionError: controllers/routes$javascript : Unsupported major.minor version 51.0
[warn] Problem processing dependencies of source /home/haider/Documents/projects/libraries/play-2.0.4/samples/java/helloworld/target/scala-2.9.1/src_managed/main/controllers/routes.java : java.lang.UnsupportedClassVersionError: controllers/routes : Unsupported major.minor version 51.0
[warn] Problem processing dependencies of source /home/haider/Documents/projects/libraries/play-2.0.4/samples/java/helloworld/target/scala-2.9.1/src_managed/main/controllers/routes.java : java.lang.UnsupportedClassVersionError: controllers/routes$ref : Unsupported major.minor version 51.0
[warn] Error reading API from class file : java.lang.UnsupportedClassVersionError: controllers/routes$javascript : Unsupported major.minor version 51.0
[warn] Error reading API from class file : java.lang.UnsupportedClassVersionError: controllers/routes : Unsupported major.minor version 51.0
[warn] Error reading API from class file : java.lang.UnsupportedClassVersionError: controllers/routes$ref : Unsupported major.minor version 51.0
[warn] Problem processing dependencies of source /home/haider/Documents/projects/libraries/play-2.0.4/samples/java/helloworld/app/controllers/Application.java : java.lang.UnsupportedClassVersionError: controllers/Application$Hello : Unsupported major.minor version 51.0
[warn] Problem processing dependencies of source /home/haider/Documents/projects/libraries/play-2.0.4/samples/java/helloworld/app/controllers/Application.java : java.lang.UnsupportedClassVersionError: controllers/Application : Unsupported major.minor version 51.0
[warn] Problem processing dependencies of source /home/haider/Documents/projects/libraries/play-2.0.4/samples/java/helloworld/app/controllers/Application.java : java.lang.UnsupportedClassVersionError: controllers/Application$Hello : Unsupported major.minor version 51.0
[warn] Problem processing dependencies of source /home/haider/Documents/projects/libraries/play-2.0.4/samples/java/helloworld/app/controllers/Application.java : java.lang.UnsupportedClassVersionError: controllers/Application : Unsupported major.minor version 51.0
[warn] Error reading API from class file : java.lang.UnsupportedClassVersionError: controllers/Application$Hello : Unsupported major.minor version 51.0
[warn] Error reading API from class file : java.lang.UnsupportedClassVersionError: controllers/Application : Unsupported major.minor version 51.0
[info] play - Application started (Dev)
答案 0 :(得分:27)
您正在使用不同的JDK版本来编译和运行应用程序。你这么说:
java: 1.6.0_24 (OpenJDK)
javac: 1.7.0_07 (OpenJDK)
因此,您的编译器(javac)是一个比 java 命令更新的版本,这意味着第二个版本无法运行您编译的文件。您必须只使用1个版本的JDK(对于java和javac都相同)
答案 1 :(得分:23)
在Ubuntu上为了编译和运行而更改Java版本,你需要调用:
sudo update-alternatives --config javac
和
sudo update-alternatives --config java
答案 2 :(得分:5)
更好的解决方案是更改目标版本,因此您可以从1.7编译为1.6,如下所示: How can I set the javac compile version for Play Framework 2.0 to prevent "Unsupported major.minor version"?
将它放在Build.scala中:
val main = play.Project(appName, appVersion, appDependencies).settings(
// Force compilation in java 1.6
javacOptions in Compile ++= Seq("-source", "1.6", "-target", "1.6")
)