我是Linux的新用户。我刚刚安装了jdk1.7.0_02.rpm,并试图使用javac tester.java
编译我的程序,当我试图通过java tester
运行文件时,我得到了这些错误
Exception in thread "main" java.lang.UnsupportedClassVersionError: tester : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
找不到主类:tester。程序将退出。
然后我检查了Java版本,它是:
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.4) (fedora-61.1.10.4.fc16-i386)
OpenJDK Server VM (build 20.0-b11, mixed mode)
现在如何更改此版本?我甚至安装了jre1.7.0_02,但没有改变!
这就是正在发生的事情:
最佳答案
使用javac
的cross-compilation options。指定-source
和-target
版本,然后按照提示重新选择其他选项。
那请告诉我怎么做?
javac -source 1.6 -target 1.6 -bootclasspath /path/to/1.6/j2se/rt.jar *.java
如果指定
source
/target
,1.7编译器将警告您使用-bootclasspath
选项,这对于验证源中引用的类、方法和属性是否在目标jar中可用非常重要。早期版本的编译器未能对bootclasspath
发出警告。关于java - 编译说不支持的类版本错误后无法运行我的程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9029547/