我已经看到了与此确切错误相关的其他问题,但它们似乎根本没有帮助。
我正在编写一个在Linux系统上运行的应用程序(CentOS,如果我没有记错的话),它有Java 1.5版本。我目前正在使用Java 1.6的Mac OSX系统上的Eclipse IDE上编辑程序。
我将项目编译成可运行的.JAR文件。当提示选择如何处理Eclipse中的库时,我选择“将所选包提取到.JAR文件中”。
我知道Eclipse有自己的编译器,因此在项目设置中我将目标编译器更改为Java 1.5并重建。然后重新打包可运行的jar文件。
但是,在目标计算机上运行带有“java -jar file.jar”的.JAR文件时,我仍然会收到上述“错误的版本号”错误。
有人可以帮忙吗?
完整错误是:
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
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:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
我只使用一个外部库sun-javamail。
谢谢
答案 0 :(得分:0)
你要么:
答案 1 :(得分:0)
您可能希望在类文件上运行javap命令并检查已编译的JDK的确切版本。
例如:
C:\>javap -verbose Main
Compiled from "Main.java"
public class Main extends java.lang.Object
SourceFile: "Main.java"
minor version: 0
major version: 50
...
以下是主要版本和jdk
之间的映射MajorVersion JDK
51 J2SE 7
50 J2SE 6.0
49 J2SE 5.0