问题如题:
例子:在WINDOWS下编译的一个最简单的helloworld.class,在UNIX下是否需要重新编译,为什么需要,如果不需要为什么不需要。
笔者实验的例子如下:
import java.io.*;class hellow{  public static void main(String args[])
  {
    System.out.println("hellow world!!!");
  }
}在windows下javac hellow.java后得到hellow.class,在windows下执行没有问题。
通过FTP传输到在aix后,直接执行此hellow.class提示错误如下:
The java class could not be loaded. java.lang.UnsupportedClassVersionError: hell
ow (Unsupported major.minor version 50.0)
说明:windows xp sp2,jdk 1.6.0_20
     aix 5.3.0.0,jdk 1.4.2请大家一起讨论。

解决方案 »

  1.   

    在UNIX下是否需要重新编译,为什么需要,如果不需要为什么不需要。如果UNIX下JDK的版本更高,就不用;否则就需要。
      

  2.   

    jdk1.4当然不能运行jdk 1.6编译产生的class文件了 
    aix 上的jdk版本太低了
      

  3.   

    LZ你反过来就可以了.
    你用1.4版本的编译成.class,然后放到1.6版本下执行就没问题
      

  4.   

    自己检讨原因。编译的时候:IDE,比如eclipse 选择compiler里面的target到1.4
    命令行javac -target 1.4
      

  5.   

    看来大家都比较清楚,只是可惜没有一位愿意总结的。
    看来JAVA确实可以做到一处编译,处处执行,想来还是因为JVM的原因,至于我上面遇到的问题的原因应该就是大家所提到的和JDK的版本有关,实践证明而JAVA的版本兼容特性是高版本兼容低版本的。感谢各位
      

  6.   

    另外,这个例子中其实还有一个很隐蔽的问题,要显示的告知大家,在我后期的测试中,虽然AIX JDK1.4下编译的程序FTP传到WIN JDK1.6后还是不能用。经过细查,笔者才发现原来是和FTP的传输模式有关系,因为FTP默认是ASCII方式传输的因此,从AIX传过来的CLASS文件发生了编码变化,而笔者改成BINARY方式传递后就可以兼容运行了。
      

  7.   


    这个不是大家愿不愿意总结,大家也觉得不需要去用实践证明"JAVA的版本兼容特性是高版本兼容低版本的"。对于开发人员,包括很多有一定经验的电脑使用者,都知道向下兼容