2013-06-23 53 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