2013-01-10 164 views
0

Possible Duplicate:
unsupported major .minor version 51.0无法运行jar文件在MacOS上

我学习java这些days.I在它创建的应用程序并创建了它的一个可执行的JAR文件。 jar文件在Windows 7中正常工作,但是当我试图运行在MacOS上的同一个JAR文件,然后我得到以下错误:

Exception in thread "main" java.lang.reflect.InvocationTargetException 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58) 
Caused by: java.lang.UnsupportedClassVersionError: org/redfire/screen/ScreenShare : Unsupported major.minor version 51.0 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
at FinalJavaScreenShare.InitialiseScreenShare(FinalJavaScreenShare.java:150) 
at FinalJavaScreenShare.GetServerData(FinalJavaScreenShare.java:134) 
at FinalJavaScreenShare.main(FinalJavaScreenShare.java:46) 

可能是什么这样的错误的原因。我想知道是否必须为不同的操作系统创建单独的Jar文件,或者当前版本的Jar是否存在任何问题。

注意:我正在使用Eclipse Helios创建Jar文件。

请帮助我。任何帮助将不胜感激。

感谢和问候。

+0

简短的回答是,检查您正在编译的Java版本与已安装的版本相比较 – MadProgrammer

回答

0

这已根据您的第一个问题标记为重复(请关注每个问题的一个问题)。我会解决它的其他部分。

Do I have to create separate Jar file for different OS or is there any issue with the current version of the Jar?

是分别

没有&。

这里重要的是确保cross-compilation options of javac用于编译支持它的最小Java运行时版本的代码。

+0

感谢您的回复Andrew –