2014-10-20 2 views
0

JDK 8.0을 사용하여 jar 파일을 만들고 JRE 7.0이있는 시스템에서 jar 파일을 실행하려고했지만 다음과 같은 오류가 발생합니다.실행중인 jar 파일의 버전 호환성으로 인한 오류

C:\Users\admin\Desktop>java -jar test.jar 
Exception in thread "main" java.lang.UnsupportedClassVersionError: test : Uns 
upported major.minor version 52.0 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClass(Unknown Source) 
     at java.security.SecureClassLoader.defineClass(Unknown Source) 
     at java.net.URLClassLoader.defineClass(Unknown Source) 
     at java.net.URLClassLoader.access$100(Unknown Source) 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) 

jar 파일 생성시 변경해야 할 사항은 무엇입니까? 그래서 그것은 버전 호환성없이 실행됩니까?

+0

Eclipse에서 프로젝트를 만든 경우 ** 프로젝트 패싯 **'Java '를'1.7 '및'컴파일러 버전 '을'1.7 '로 변경하십시오. 그런 다음 JDK 1.7이 설치된 시스템에서 jar를 실행하십시오. – OO7

+0

@ OO7 CMD 및 메모장을 사용 중이며 IDE는 없습니다 – androidGenX

+0

대상 시스템 OS는 무엇입니까? – OO7

답변

1

javac-source 옵션을 사용해야합니다. 예를 들어 : 이론적으로

javac -source 1.7 foo/Bar.java 

는 별도로 sourcetarget 옵션을 지정할 수 있지만 1.7을 대상으로 할 때 모든 자바 8 언어 기능을 사용할 수 없습니다 같이 당신의 의견에 의해 판단, 그것은 소리.

이것은 자신의 소스 코드에만 적용됩니다. xbasej-20091203.jar이 Java 8에 대해 빌드 된 경우 Java 7을 대상으로하는 버전을 찾아야합니다.

+0

시도했지만 'javac : 대상 버전 1.7이 기본 소스 릴리스 1.8과 충돌합니다.' – androidGenX

+0

@androidGenX : 1.7을 타겟팅 할 때 Java 8 언어 기능을 사용할 수없는 것처럼 들립니다. –

+0

어떻게 대화 할 수 있습니까? C : \ TIPL \ GCST> javac -target 1.7 -classpath lib/xbasej-20091203.jar Example2.java javac : 대상 릴리스 1.7이 기본 소스 릴리스 1.8과 충돌합니다. – androidGenX

관련 문제