解决Unsupported major.minor version 51.0问题的感悟
来源:互联网 发布:cmd 80端口 编辑:程序博客网 时间:2024/05/28 23:22
今天偶然间同事遇到一个问题,也加深了自己对eclipse中build path和java compiler compliance level的理解。
问题是这样的,同事在eclipse中开发的项目,导成jar之后,放到服务器上,总是报“Unsupported major.minor version 51.0”的错误,从网上查,一直说是JDK的问题,但是就不是很清楚怎么回事,怎么解决,最后,经过另一个同事,终于解决了,也使我终于明白了问题的来龙去脉:在eclipse中开发的项目有个java build path中可以配置的jdk,还有个java compiler中可以配置compiler level,这两个是有区别的,build path的JDK版本是你开发的时候编译器需要使用到的,就是你在eclipse中开发代码,给你提示报错的,编译的过程;java compiler compliance level中配置的编译版本号,这个编译版本号的作用是,你这个项目将来开发完毕之后,要放到服务器上运行,那个服务器上JDK的运行版本。同事的问题就是,build path中配置1.7的JDK,java compiler compliance level中配置的1.7,但是服务器上是1.6的JDK,就报了那个错误,说是编译所用的jdk(1.7)比运行所用的jdk(1.6)高了,这是错误的。
总结:build path的JDK版本是你开发的时候编译器需要使用到的,例如,如果用的JDK1.4就不能使用泛型。而java compiler compliance level设置的是你写好的JAVA代码按照什么JDK版本级别编译,例如:设置的是1.4,编译出来的class文件可以在1.4以上的JRE上运行,如果用的是5.0级别编译,就不能运行在1.4的环境里面,会提示版本过高。
问题是这样的,同事在eclipse中开发的项目,导成jar之后,放到服务器上,总是报“Unsupported major.minor version 51.0”的错误,从网上查,一直说是JDK的问题,但是就不是很清楚怎么回事,怎么解决,最后,经过另一个同事,终于解决了,也使我终于明白了问题的来龙去脉:在eclipse中开发的项目有个java build path中可以配置的jdk,还有个java compiler中可以配置compiler level,这两个是有区别的,build path的JDK版本是你开发的时候编译器需要使用到的,就是你在eclipse中开发代码,给你提示报错的,编译的过程;java compiler compliance level中配置的编译版本号,这个编译版本号的作用是,你这个项目将来开发完毕之后,要放到服务器上运行,那个服务器上JDK的运行版本。同事的问题就是,build path中配置1.7的JDK,java compiler compliance level中配置的1.7,但是服务器上是1.6的JDK,就报了那个错误,说是编译所用的jdk(1.7)比运行所用的jdk(1.6)高了,这是错误的。
总结:build path的JDK版本是你开发的时候编译器需要使用到的,例如,如果用的JDK1.4就不能使用泛型。而java compiler compliance level设置的是你写好的JAVA代码按照什么JDK版本级别编译,例如:设置的是1.4,编译出来的class文件可以在1.4以上的JRE上运行,如果用的是5.0级别编译,就不能运行在1.4的环境里面,会提示版本过高。
补充:后经实例证明,在eclipse中进行开发的时候,build path 中JDK进行类库的编译(就是你使用类在不在这个JDK中),java compiler compliance level是对这个项目语法的编译(就是你的项目中语法的正确与否),在开发的过程中,这两个地方是都起作用的。所以说,最最安全的做法,是build path 和 java complier compliance level和服务器配置的JDK都保持一致,就不会出现任何问题的。
- 解决Unsupported major.minor version 51.0问题的感悟
- 解决Unsupported major.minor version 51.0问题的感悟
- 解决Unsupported major.minor version 51.0问题的感悟
- 解决Unsupported major.minor version 51.0问题的感悟(转)
- 解决Unsupported major.minor version 51.0问题的感悟
- 解决Unsupported major.minor version 51.0问题
- Unsupported major.minor version 51.0问题的解决
- 解决Unsupported major.minor version 49.0问题
- Unsupported major.minor version 49.0 问题的解决
- Unsupported major.minor version 49.0 问题的解决
- Unsupported major.minor version 52.0问题的解决
- [java]解决Unsupported major.minor version 51.0报错问题
- 解决Unsupported major.minor version 51.0
- Unsupported major.minor version 51.0解决
- 解决Unsupported major.minor version 51.0错误
- 解决Unsupported major.minor version 51.0错误
- Unsupported major.minor version 51.0解决
- Unsupported major.minor version 51.0解决
- 武汉索软科技有限公司
- [转]Redis几个认识误区
- SSH 配置举例
- 简单套接字socket例子
- 花生壳实现外网访问内网的设置方法
- 解决Unsupported major.minor version 51.0问题的感悟
- poj 1149 网络流构图
- CMMB中的H264和AAC打包成ts流
- libreoffice在11.04环境下默认的是英文的解决办法
- DataStage 7.5.1.A 连接 Microsoft SQL Server 的 connection string
- Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules
- JS数组Array用法
- apache中配置php支持模块模式、cgi模式和fastcgi模式的实验
- 部门职责和个人职能