我理解当我在比运行类文件的JVM更新的版本中编译我的java文件时会导致UnsupportedClassVersionError。
我正在开发一个程序,该程序将运行在运行Java 1.6的IBM i Series盒子上。我已经交叉编译了我的文件,使用1.5作为源和目标值。使用的实际命令是:
javac -source 1.5 -target 1.5 -bootclasspath C:/dev/languages/java/jdk1.5.0_22/jre/lib/rt.jar -extdirs "" -classpath "c:/dev/QIBM/ProdData/OS400/jt400/lib/*;/psmssys/java/src/com/gy/as400/common;." $(find ./com/gy/as400/bladder/install/* | grep .java)
了解我正在运行Java 1.8.0_131
的Win 7盒子上编译文件如果我编译了类,那么运行
javap -verbose
在任何结果类上,主要版本显示49,根据this wiki article,它应与JVM 1.5及更高版本兼容。
我尝试交叉编译为1.4,但这需要我重写我的代码的很大一部分,以便不使用FOR...EACH
和通用列表。
我在这里缺少什么。
答案 0 :(得分:0)
谢谢@ rdean400。
我开始思考并回过头来查看传输日志,发现一些错误已经从我的开发盒移到了测试盒。我清除了所有现有的类文件并再次传输它们。这解决了UnsupportedClassVersionError。