好吧,伙计们,我刚刚安装了JDK 7,而且我在Windows 7上。我只是想尝试编写和运行一个简单的“hello world”,我从某处复制了因为我不确切知道我现在在做什么我已经设置了PATH,当我使用javac时,我认为它编译时没有出错,但是当我尝试运行它时,我得到:
Exception in thread "main" java.lang.UnsupportedClassVersionError: apples : Unsu
pported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
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$000(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)
Could not find the main class: apples. Program will exit.
不知道这是否有助于任何大声笑,但感谢任何知道这里发生什么的人。
java版“1.6.0_31” Java(TM)SE运行时环境(版本1.6.0_31-b05) Java HotSpot(TM)64位服务器VM(内置20.6-b01,混合模式)
javac 1.7.0_04
答案 0 :(得分:1)
这个答案可能是多余的,但问题是您用来运行程序的JVM 不是您刚刚安装的Java 7 JVM。它是较旧的,它不理解您要求它运行的(Java 7).class文件。
Greg Hewgill建议您运行java -version
和javac -version
。这些将告诉您实际正在运行的Java版本...与您正在运行的认为的版本不同。
解决方案(可能)是更新当前指向旧Java安装的%PATH%
。
您添加到问题中的java -version
和javac -version
的输出意味着您正在使用Java 7进行编译并使用Java 6运行。这绝对是导致问题的原因。修复您的%PATH
变量,以便使用相同的工具集进行编译和运行。 (这是最简单的解决方案......)
答案 1 :(得分:1)
看到你使用jdk6运行和jdk7编译,你将不得不改变你的路径/类路径设置以反映jdk7