2014-06-30 41 views
1

我試圖在Heroku雲上使用Cedar堆棧部署簡單的Java EE應用程序。Heroku java.lang.UnsupportedClassVersionErrorUnsupported major.minor版本51.0

即時得到「java.lang.UnsupportedClassVersionError錯誤:COM /應用/對myApp /主:不支持MAJOR.MINOR版本51.0(無法加載類com.app.myApp.main

這意味着,即時通訊具有更高的JDK版本比Heroku的JVM版本進行編譯。 我指定「java.runtime.version = 1.7」「system.properties」文件。

我試圖JDK與這些其他JDK編譯版本:

•jdk1.7.0_55

•jdk1.7.0_51

•jdk1.7.0_07

例如,當我試圖 「jdk1.7.0_07」,以確認,即時通訊使用正確的JDK版本jdk1.7.0_07編譯,我發出的 「的javac -version」,得到了:

enter image description here

比我還檢查了Eclipse使用正確的JDK版本jdk1.7.0_07:

enter image description here

比我編譯&使用「MVN清潔包」比我部署使用創建WAR 「Heroku的部署:戰爭--war myApp.war --app對myApp」

但我仍然得到:

「java.lang.UnsupportedClassVersionError:com/app/myApp/main:Unsupported major.minor version 51.0(無法加載類com.app.myApp.main」

而且比我試過JDK 6版本,以防萬一Heroku的JVM是versio 6

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

•jdk1.6.0_45

•jdk1.6.0_34

我編譯/打包&部署,但我仍然得到:

「java.lang.UnsupportedClassVersionError錯誤:COM /應用/對myApp /主:不支持MAJOR.MINOR版本51.0(無法加載類com.app.myApp.main」

最後說,這就夠了,想跑「heroku run bash」讓我可以遠程進入heroku &試圖找到JVM版本;或者將「java -version」或「cd」發佈到「。JDK」路徑&實際檢查b UT我一直認爲正在使用的JVM,不斷收到‘超時等待的過程’...... **沒有bash的控制檯。**

因此什麼是真正的JVM版本安裝在Heroku實例&怎麼能找出?

感謝

回答

0

你的類文件編譯爲Java7。 但似乎「Heroku」使用較低的版本。

僅包含較低版本的Java運行時是不夠的,但您必須確保編譯器爲所需版本創建類文件。

因此,您必須將Java編譯器頁面上的目標版本指定爲1.6!

+0

看來我的Heroku實例有JRE 6,那接受不晚於JDK 6編譯的代碼。 – cyber101

相關問題