我目前正在使用Vaadin 7框架和jInstagram(用于Instagram API的Java包装器)库来创建Web应用程序。我正在使用的服务器运行jetty。
在OSX 10.9上使用Eclipse Kepler
问题是我一直收到这个错误:
" java.lang.UnsupportedClassVersionError:com / example / test / testUI $ Servlet:不支持的major.minor版本51.0"
我已经安装了JRE 7并将项目设置更改为使用JRE 7.
有谁知道我收到此错误的原因?
答案 0 :(得分:3)
有谁知道我收到此错误的原因?
问题是实际运行Jetty服务器的JVM和你的webapp代码不是Java 7.不幸的是,你还没有告诉我们足够让我们知道为什么会这样,但它是可以做的事情与Jetty服务器的启动方式。
答案 1 :(得分:0)
有谁知道我收到此错误的原因?
当您尝试运行版本低于用于编译代码的版本的Java代码时,您将收到此错误。即使代码是在Java 6中编译并在Java 7中运行,代码也应该工作。因此,我可以看到您收到该错误的唯一原因是,虽然您已将项目设置设置为使用Java 7,但它仍然使用较小的版本。您可以将模块特定设置检查为覆盖项目级别设置。还要检查所使用的java环境变量,因为如果从命令行运行服务器,那么这些变量将被选中。您可以尝试java -version
。另请参阅JAVA_HOME
变量是否设置为Java 7 JDK目录。
答案 2 :(得分:0)
Java版本如下。
J2SE 8 = 52,
J2SE 7 = 51,
J2SE 6.0 = 50,
J2SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45
根据包描述,它似乎是你的类(你已经编写了src)。当您使用更高/更低版本的jdk编译源文件然后在运行时使用的版本时,通常会抛出异常。
要解决此问题,您必须在编译(JDK)和运行(JVM)中使用相同的版本。要检查编译器和JVM的版本,请使用以下命令。
Compiler
javac -version
JVM
javac -version