注册表项“ ...”的值为“ 1.7”,但必须为“ 1.6”。Java 1.7已安装,并且注册表指向它
我的开发团队最近被迫转到一个远程开发环境,在该环境中我们无法完全访问服务器。在进行转换之前,我们拥有一个可以在Java 1.7 x64和JRE 7上正常运行的JAR。当我们移到新服务器上时,JAR运行良好,但是随后一位服务器管理员将Java“更新”到了旧版本。版本并卸载了我们正在使用的版本。不要问我为什么,我不知道。我重新安装了Java 1.7,并与JRE一起卸载了1.6。 运行时发生以下问题,没有构建错误: Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion' has value '1.7', but '1.6' is required. Error: could not find java.dll Error: could not find Java SE Runtime Environment. 我已经在笔记本电脑上运行了相同的JAR,没有任何问题。服务器和笔记本电脑在各自的%HOME%变量和系统PATH中均具有JDK 1.7和JRE 7。我什至重新安装了JRE 6,稍后将其放在系统环境PATH变量中,结果相同。 我还把注册表改回了1.6,结果如下:我查找了它,它似乎是由于安装了多个Java(导致我的原始问题): Exception in thread "main" java.lang.UnsupportedClassVersionError: ... : Unsupported major.minor version 51.0 当我浏览各种论坛时,如果能获得大家的宝贵见解,我将不胜感激。同样,这也在我们正在使用的另一台服务器上发生。谢谢! 更新:将JAR重新编译为1.6或1.7并匹配JDK并没有运气。另外,为什么在世界上,较新版本的Java会破坏较旧的编译版本?