2012-04-27 52 views
2

背景,这个应用程序在Play上运行!在Mac OS X 10.5.8玩!框架运行抛出UnsupportedClassVersionError

框架1.2.4命令我运行:sudo play run

抛出的异常:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:676) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:317) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375) 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357) 
    at java.lang.Class.getConstructor0(Class.java:2671) 
    at java.lang.Class.newInstance0(Class.java:321) 
    at java.lang.Class.newInstance(Class.java:303) 
    at play.plugins.PluginCollection.loadPlugins(PluginCollection.java:158) 
    at play.Play.init(Play.java:294) 
    at play.server.Server.main(Server.java:158) 

为应用程序和所有相关模块的application.conf被设置为java.source=1.6

sudo $JAVA_HOME/bin/java -version产生java version "1.6.0_26"

我甚至POIN ted/System/Java/Home进行1.6安装。

还有什么可能导致这种情况?

+0

你有任何第三方依赖?如果某些依赖关系是使用java 7编译的,并且您正在使用java 6运行,则通常会发生此错误。 – aaberg 2012-04-27 18:52:47

+0

我们有各种各样的依赖关系正在使用,但它们通过Ivy被拉下来,其他团队成员没有此问题。团队中的其他人也使用Java 6来执行此操作。 – 2012-04-27 19:35:19

回答

2

你在PATH中有哪些Java版本?我们遇到了类似的问题(不是Play),其中应用程序的所有设置似乎都指向1.6,但PATH引用了1.5,由于它在PATH字符串中的位置,所以首先加载该引用。

检查您的PATH。而且,我不是Mac用户,但有必要使用sudo?在Ubuntu中我运行没有。如果可能,这可能有助于减少由于root用户路径和配置而导致的意外冲突。

+0

刚刚发现了这个问题。是的,它与sudo有关。 sudo java -version显示root使用Java 1.5。更新根配置文件解决了此问题。 – 2012-04-30 16:15:34