问题

我正在尝试使用Notepad++作为我的一体化工具编辑,运行,编译等。

我安装了JRE,并且我已将路径变量设置为... / bin目录。

当我在记事本中运行我的“Hello world”时,我收到以下消息:

java.lang.UnsupportedClassVersionError: test_hello_world :
 Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
       .........................................

我认为这里的问题是关于版本的;某些版本的Java可能会老旧或太新。

  • 我如何解决它?
  • 我应该安装JDK,并将我的路径变量设置为JDK而不是JRE吗?
  • JRE或JDK中的PATH变量有什么区别?

#1 热门回答(1767 赞)

显示的版本号描述了类文件兼容的JRE版本。

报道的主要数据是:

Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

(来源:Wikipedia)

要解决实际问题,您应该尝试使用更新版本的Java JRE运行Java代码,或者指定Java编译器的目标参数以指示编译器创建与早期Java版本兼容的代码。

例如,为了生成兼容Java 1.4的类文件,请使用以下命令行:

javac -target 1.4 HelloWorld.java

使用较新版本的Java编译器,您可能会得到关于未设置引导类路径的警告。有关此错误的更多信息,请参阅博客postNew javac warning for setting an older source without bootclasspath


#2 热门回答(328 赞)

java.lang.UnsupportedClassVersionError发生是因为编译期间JDK较高,运行时JDK较低。


#3 热门回答(111 赞)

在Eclipse中,我刚进入menuWindow-> Preferences-> Java-> Compile菜单,然后将“Compiler compliance level”设置为1.6。


原文链接