论坛首页 Java企业应用论坛

虚拟机的版本相关错误处理

浏览 1675 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-04  

此类问题每次发生在我倒腾我的开发环境时,今天小记下。

1、寻找本机的虚拟机和版本:

1)JDK中的:C:\j2sdk1.4.2_10\jre

2)JRE中:C:\Program Files\Java\j2re1.4.2_10

3)开发工具中的:D:\MyEclipse 5.5.1 GA\jre和JDK

 

2、各类版本不一致的异常出现的位置和可能原因:

1)浏览器访问在服务器过程中

lib中出现同一个包的不同版本

2)在服务器中部署组件时

某个包可能和服务器的包有冲突

3)在编译时

代码级别和虚拟机的版本有异

4)在运行独立的java程序时

程序使用的编译器版本和本机不一样

5)在访问webservice时

服务器上的webserive和本机的webservice client编译使用的版本不一样。

 

3、解决方案:

1)查找版本:查看本机的虚拟机版本:

java -version;

eclipse中首选项-编译器:设置版本参数

eclipse:构建路径-库

ant:添加target和source属性,<javac target="1.4" source="1.4"

jar文件及其它各类包文件:META-INF文件中:Manifest-Version: 1.0
Created-By: 1.5.0_19 (Sun Microsystems Inc.)

class:对于编译出的 class 文件用 javap -verbose 能显示出类的 major.minor 版本

java代码中:System.getProperty("java.runtime.version");

 

4、java虚拟机的版本参考:


JDK 编译器版本 target 参数 十六进制 minor.major 十进制 minor.major
jdk1.1.8 不能带 target 参数 00 03   00 2D 45.3
jdk1.2.2 不带(默认为 -target 1.1) 00 03   00 2D 45.3
jdk1.2.2 -target 1.2 00 00   00 2E 46.0
jdk1.3.1_19 不带(默认为 -target 1.1) 00 03   00 2D 45.3
jdk1.3.1_19 -target 1.3 00 00   00 2F 47.0
j2sdk1.4.2_10 不带(默认为 -target 1.2) 00 00   00 2E 46.0
j2sdk1.4.2_10 -target 1.4 00 00   00 30 48.0
jdk1.5.0_11 不带(默认为 -target 1.5) 00 00   00 31 49.0
jdk1.5.0_11 -target 1.4 -source 1.4 00 00   00 30 48.0
jdk1.6.0_01 不带(默认为 -target 1.6) 00 00   00 32 50.0
jdk1.6.0_01 -target 1.5 00 00   00 31 49.0
jdk1.6.0_01 -target 1.4 -source 1.4 00 00   00 30 48.0
jdk1.7.0 不带(默认为 -target 1.6) 00 00   00 32 50.0
jdk1.7.0 -target 1.7 00 00   00 33 51.0
jdk1.7.0 -target 1.4 -source 1.4 00 00   00 30 48.0
Apache Harmony 5.0M3 不带(默认为 -target 1.2) 00 00   00 2E 46.0
Apache Harmony 5.0M3 -target 1.4 00 00   00 30 48.0

 

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics