2012-04-27 48 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