2012-04-10 154 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