2012-04-27 4 views
2

배경,이 응용 프로그램은 Play!에서 실행 중입니다. 맥 OS X 10.5.8재생! 프레임 워크 실행에서 UnsupportedClassVersionError가 throw됩니다.

에 프레임 워크 1.2.4 명령 나는 실행 해요 : sudo play run

예외가 throw :

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로 설정하는 것은 심지어 poin 한 java version "1.6.0_26"

를 산출 ted/System/Java/1.6 1.6 설치 홈.

그 밖의 원인은 무엇일까요?

+0

타사 종속성이 있으십니까? 이 오류는 일반적으로 일부 종속성이 Java 7에서 컴파일되고 Java 6에서 실행중인 경우에 발생합니다. – aaberg

+0

종속성이 사용 중이지만 Ivy를 통해 가져 왔고 다른 팀 구성원에게는이 문제가 없습니다. 팀의 다른 모든 사람들도 Java 6에서도이를 실행합니다. –

답변

2

PATH에 어떤 Java 버전이 있습니까? 응용 프로그램의 모든 설정이 1.6을 가리키는 것처럼 보였지만 PATH에는 PATH 문자열 내부의 위치로 인해 처음으로로드 된 1.5에 대한 참조가있는 유사한 문제가 있습니다 (Play에서는 아 닙니다.).

PATH를 확인하십시오. 그리고 저는 Mac 사용자가 아니지만 sudo을 사용해야합니까? 우분투에서는 Play를 사용하지 않고 실행합니다. 가능한 경우 사용자 경로 및 구성이 예기치 않게 충돌하는 것을 줄이는 데 도움이 될 수 있습니다.

+0

문제를 파악했습니다. 예, 그것은 sudo와 관련이 있습니다. sudo java -version은 root가 Java 1.5를 사용하고 있음을 보여주었습니다. 루트 프로필을 업데이트하면이 문제가 해결되었습니다. –