gradle CompileJava任务不遵守(source | target)兼容性属性,java.lang.UnsupportedClassVersionError:坏的主要版本

时间:2014-02-14 02:02:44

标签: java compiler-construction gradle

我正在尝试编译一个与Java 1.6兼容的应用程序,并认为这样做我必须将targetCompatibility设置为'1.6',但是当我部署应用程序时(appserver使用jvm 1.6运行)并尝试启动它,我得到以下例外:

java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=com/foo/SomeClass, offset=6

我的JAVA_HOME设置为1.7,但是我维护了两个源代码分支,一个支持java 1.7,另一个支持1.6,所以每次切换上下文时都不必设置JAVA_HOME变量。

  1. 这是gradle中的错误吗?
  2. 有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

洛尔。一分钟我问这个问题,下一分钟我解决了。原因是因为我通过git bash终端调用gradle脚本,该终端设置了自己的java_home变量。当我打开一个vanilla命令提示符并运行构建时,该任务引发了Java 1.6错误(钻石语法异常)。没关系:)