在eclipse中开发的项目有个java build path中可以配置的jdk,还有个java compiler中可以配置compiler level,这两个是有区别的,java compiler level的JDK版本是你在eclipse中开发代码,给你提示报错的和将java文件编译成class文件需要用到的版本;build path中版本号的作用是指明你将来运行的环境。
如果build path的版本低于compiler版本,则会报 Unsupported major.minor version 51.0(高版本的版本号,以jdk7为例)。
网上大部分文章说java compiler level和build path的作用与本人的不同。在他们的说明下,我在eclipse尝试过将compiler level设置成1.6,build path 设置成1.7,编写以下程序:
public class Test { public static void main(String[] args) { // TODO Auto-generated method stub long test = 1234_5678_9012_3456L; //jdk7新语法 System.out.println(test); } }
结果程序无法编译成功,eclipse提示错误,强制运行报以下错误
Exception in thread "main" java.lang.Error: Unresolved compilation problem: Underscores can only be used with source level 1.7 or greater at Test.main(Test.java:6)
即使将系统的java home设置成jdk7,用java命令跑也是报上述错误。
如果将compiler level设置成1.7,build path 设置成1.6,则eclipse不会报编写错误,但是run后,则会报Unsupported major.minor version 51.0错误。
时间: 2024-11-17 05:45:30