2012-04-10 301 views
2

我有一個關於不同java版本之間兼容性的問題。Java JRE版本不兼容

在我的電腦上,我有java版本「1.7.0_02」。 但是當我上傳的.class和嵌入到網頁中它不起作用

我得到的錯誤:

「不支持MAJOR.MINOR版本51.0」在的頂部

標題控制檯說: 「Java Plug-in 1.6.0_31 使用JRE版本1.6.0_31-b05 Java HotSpot™客戶端虛擬機」

我想問一下是什麼導致了這個問題。它真的是我的Java版本嗎? 我的意思是,我使用計算機訪問了該網站,並編譯了該小程序。

+1

也許你的jdk版本不等於你的jre版本? – 2012-04-10 23:21:59

+1

瀏覽器中的插件不是與Java 1.7相對應的插件。在計算機中查找(並刪除)JRE 1.6。 – madth3 2012-04-10 23:31:27

+0

您正在用java 7編譯並嘗試在僅知道Java 6的JRE上運行它。 – jahroy 2012-04-11 01:20:13

回答

3

不能將使用早期虛擬機編譯爲Java 1.7兼容性類文件的類以及「Java Plug-in」錯誤你會看到,這正是發生的事情。

兩個選項:

  1. ,如果你不使用Java 1.7纔有的功能,你可以編譯你的代碼與1.6 JVM的使用選項-target 1.6兼容(見文檔here
  2. 升級如果可能的話,您的瀏覽器使用的Java插件爲1.7(例如,我認爲您不能在OS X上執行此操作)。您沒有注意到您使用的操作系統和瀏覽器,因此我不確定升級路徑是什麼,如果有的話。
+0

*「可以編譯代碼以與1.6兼容」*或1.1。最終,很少有適合新手製作的applet的新類,新方法和新屬性已經引入多年。當然,語言結構像'for each'和泛型一樣,但通常不難重新編碼一小部分來源以免需要它們。順便說一句,我不認爲索引中有鏈接,但鏈接文檔中最相關的部分直接指向[交叉編譯選項](http://docs.oracle.com/javase /7/docs/technotes/tools/windows/javac.html#crosscomp-options) – 2012-04-11 08:06:28

+1

此外,一旦你決定了最低版本的代碼將運行,編譯目標,**源和bootclasspath **選項,然後使用/ info中鏈接的'deployJava.js'。頁面上的小程序](http://stackoverflow.com/tags/applet/info),以確保最終用戶具有啓動小程序所需的最低版本,如果不是,則幫助他們升級,然後嵌入小程序。 – 2012-04-11 08:11:54

+1

@AndrewThompson我更新了鏈接,謝謝。好的關於deployJava.js的提示也一樣。 – sharakan 2012-04-11 11:44:04

1

感謝您的答案,我找出了什麼是錯的。

我在我的機器上開始使用1.7和1.6,這讓我很困惑。 問題是,1.7是64位,1.6是32位。

我的瀏覽器是鉻32位。

我剛剛安裝了1.7 32位,這很好

+2

如果我的回答有助於解決您的問題,那麼如果您接受它,那將會很好! – sharakan 2012-04-11 11:48:05

+0

是的,我非常感謝! – 2012-04-11 14:26:49