Heroku java.lang.UnsupportedClassVersionErrorUnsupported major.minor版本51.0

时间:2014-06-30 19:04:56

标签: java java-ee heroku

我尝试使用Cedar堆栈在heroku云上部署一个简单的Java EE应用程序。

我得到了“ java.lang.UnsupportedClassVersionError:com / app / myApp / main:不支持的major.minor版本51.0(无法加载类com.app.myApp.main &#34; < / p>

这意味着我使用比heroku JVM版本更高的JDK版本进行编译。 我在“system.properties”文件中指定了“java.runtime.version = 1.7”

我尝试使用JDK重新编译这些其他JDK版本:

•jdk1.7.0_55

•jdk1.7.0_51

•jdk1.7.0_07

例如,当我尝试&#34; jdk1.7.0_07&#34; ,为了确认我使用正确的JDK版本jdk1.7.0_07进行编译,我发布了&#34; javac -version&#34; ,得到了:

enter image description here

我还检查Eclipse是否使用了正确的JDK版本jdk1.7.0_07:

enter image description here

比我编译&amp;使用&#34; mvn clean package&#34; 创建WAR,比使用&#34; heroku deploy部署:war --war myApp.war --app myApp&#34; < /强>

但我仍然得到:

“java.lang.UnsupportedClassVersionError:com / app / myApp / main:不支持的major.minor版本51.0(无法加载类com.app.myApp.main&#34;

而且我试过JDK 6版本,以防Heroku JVM是第6版

使用system.properties文件“java.runtime.version = 1.6

•jdk1.6.0_45

•jdk1.6.0_34

我编译/打包&amp;部署,但我仍然得到:

“java.lang.UnsupportedClassVersionError:com / app / myApp / main:不支持的major.minor版本51.0(无法加载类com.app.myApp.main&#34;

最后说这已经足够了,并试图运行“heroku run bash”,这样我就可以远程进入heroku&amp;尝试通过以下方式查找JVM版本;发出“java -version”或&#34; cd&#34;进入“.jdk”路径&amp;实际上检查正在使用的JVM,b 我一直保持“等待进程超时”...... **没有bash控制台。**

因此Heroku实例上安装的实际JVM版本是什么?怎么能找出???

由于

1 个答案:

答案 0 :(得分:0)

您的类文件是为Java7编译的。 但似乎“Heroku”使用较低版本。

仅包含较低版本的Java运行时是不够的,但您必须确保编译器为所需版本创建类文件。

因此,您必须在Java Compiler页面上将目标版本指定为1.6!