2013-06-23 41 views
0

我的applet應用程序在JRE 7編譯並創建了帶簽名的jar。我在客戶端機器上部署了.jar文件。但我在IE上遇到了「不支持major.minor版本51.0」的例外情況。我想提供一個applet jar文件來兼容所有的瀏覽器。如何使兼容性成爲一個jar文件?JAR與所有JRE版本的兼容性

+3

「所有瀏覽器的任何JRE」都是傻瓜差事。對於支持Java 1.3或更早版本來說,沒有任何價值和方式太麻煩,並且我個人在1.6之前不會打擾任何東西。 – millimoose

回答

2

,最好的辦法是編譯使用舊的JDK你的應用程序。我想這是您直接看到您使用舊版JRE上可用的正確JDK API以及舊版JRE/JDK上可用的正確二進制版本中的依賴項(類路徑上的第三方JAR文件)的唯一方法。儘可能遠地使用,即使用版本1.3,1.4,1.5或1.6中的JDK。

如果該庫不適用於較舊的JRE版本,則需要以某種方式將其移回(也可能是其傳遞依賴關係)。這可能會非常棘手,可能需要付出很多努力(使用RetroWeaver等工具)。因此,請謹慎選擇向後兼容的選項。

2

使用javac中的-source-target標誌,將源文件編譯爲較低的目標版本 - 具體而言,是要支持的目標JVM版本。

所以,舉例來說:

javac -source 5 -target 5 -sourcepath /path/to/code -d /path/to/compiled/code *.java 
+1

另外一個好主意是使用某種API檢查器來確保應用程序只使用任何JDK提供的庫。 – millimoose

+0

爲什麼不直接使用較舊的JDK進行編譯?然後你知道它不能使用那個版本中沒有的庫。 –

+0

編譯器向後兼容。爲什麼我們需要得到一個較舊的編譯器才能使用故意烘焙的功能? – Makoto