2012-03-28 10 views
11

Estaba ejecutando mi aplicación de reproducción en OpenJDK 1.7. Todo estuvo bien hasta que intenté implementar Heroku, que solo admite OpenJDK 1.6. He arreglado el sintaxis para ejecutar en OpenJDK 1.6, sin embargo, cuando voy a ejecutarlo me sale el siguiente error:Play framework: cómo solucionar UnsupportedClassVersionError en JRE 6?

[email protected]:/src/playtest$ java -version 
java version "1.6.0_23" 
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.2) 
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) 
[email protected]:/src/playtest$ play run 
~  _   _ 
~ _ __ | | __ _ _ _| | 
~ | '_ \| |/ _' | || |_| 
~ | __/|_|\____|\__ (_) 
~ |_|   |__/ 
~ 
~ play! 1.2.4, http://www.playframework.org 
~ 
~ Ctrl+C to stop 
~ 
Listening for transport dt_socket at address: 8000 
22:13:21,806 INFO ~ Starting /src/playtest 
22:13:21,811 INFO ~ Module securesocial is available (/src/play-1.2.4/modules/securesocial-0.2.4) 
22:13:21,811 INFO ~ Module crudsiena is available (/src/playtest/modules/crudsiena-2.0.2) 
22:13:21,812 INFO ~ Module siena is available (/src/playtest/modules/siena-2.0.7) 
Exception in thread "main" java.lang.UnsupportedClassVersionError: DocViewerPlugin : Unsupported major.minor version 51.0 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634) 
    at play.classloading.ApplicationClassloader.loadApplicationClass(ApplicationClassloader.java:166) 
    at play.classloading.ApplicationClassloader.loadClass(ApplicationClassloader.java:84) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
    at play.plugins.PluginCollection.loadPlugins(PluginCollection.java:158) 
    at play.Play.init(Play.java:294) 
    at play.server.Server.main(Server.java:158) 

Parece que hay un 1,7 clase Java compilado en alguna parte que el juego está tratando de ejecutar en Java 1.6 VM

He ejecutado play clean, y también eliminé el caché ivy y ejecuté play deps para reinstalar todas las dependencias. También busqué en el directorio de mi aplicación y en el directorio de instalación de play mis archivos .class perdidos y no encontré ninguno. También intenté borrar/tmp en el caso de que se hiciera referencia a un archivo, pero no tuvo efecto.

DocViewerPlugin es uno de los complementos principales y no lo necesito, ¿hay alguna forma de ponerlo en la lista negra?

Respuesta

7

Debe compilar el código utilizando la opción -target 1.6.

+1

Aha! La lectura me hizo recordar que no había cambiado java.source a 1.6 en application.conf. ¡Gracias! –

+0

En Eclipse tuve que modificar manualmente el archivo .classpath y el archivo de Preferencias. Y ahora funciona – Pixelapp

+0

¿Dónde se establece '-target 1.6'? Intenté configurar en application.conf sin éxito. – HelpMeStackOverflowMyOnlyHope

10

Me di cuenta. En application.conf, asegúrese de que java.source=1.6 esté configurado.