当前位置: 首页 > 知识库问答 >
问题:

注册表项“…”具有值“1.7”,但需要“1.6”。安装了Java1.7,注册表指向它

姚胡媚
2023-03-14

我的开发团队最近被迫转移到一个远程开发环境,在那里我们不能完全访问服务器。在更改之前,我们有一个在Java1.7 x64和JRE 7上运行良好的JAR。当我们转移到新服务器时,我们的JAR运行正常,但是其中一个服务器管理员“更新”了我们的Java到旧版本,并卸载了我们正在使用的版本。别问我为什么,我不知道。我重新安装了1.7Java,卸载了1.6和JRE。

以下问题发生在运行时,没有构建错误:

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%变量和系统路径中都有JDK 1.7和JRE 7。我甚至重新安装了JRE 6,并在稍后将其放入系统环境路径变量中,得到了相同的结果。

我还将注册表改回1.6,结果如下,我查了一下,似乎是因为安装了多个Java(导致了我最初的问题):

Exception in thread "main" java.lang.UnsupportedClassVersionError: ... :
Unsupported major.minor version 51.0

我会很感激你们的任何见解,因为我一直在各种论坛上寻找,但似乎没有什么是我的问题。此外,这也发生在我们正在使用的另一台服务器上。谢谢

更新:将JAR重新编译为1.6或1.7并与JDK匹配不会带来好运。还有,为什么新版本的Java会破坏旧的编译版本?

共有3个答案

郑富
2023-03-14

我删除了windows/system32上的java文件,还从PATH变量中删除了c:\ProgramData\Oracle\java\javapath,因为有3个指向java 1.8文件的符号链接。

我在%JAVA_HOME%变量和java1中使用了JDK1.7。路径中的7/bin。

我的问题在Java1.7和Java1.8之间。

PS2:我不能把这个作为对维克多回答的评论,因为我没有足够的分数。

宰父衡
2023-03-14

在安装java 8(jdk

错误:注册表项“Software\JavaSoft\Java运行时”

环境\货币版本的值为1.8,但需要1.7。

错误:找不到java。dll错误:找不到Java SE运行时环境。

我的环境设置正确(路径

但是,Java 8安装程序在一个新目录C:\ProgramData\Oracle\Java\javapath中创建符号链接,指向实际的JRE 8位置。

这意味着您将实际运行旧的7个EXE,但使用新的8个DLL。

因此,解决方案只是从windows系统目录中删除3个Java EXE,如上所述。

如果在64位Windows上运行32位Java,则EXE将位于Windows\SysWOW64中,否则位于Windows\System32中。

鲁向明
2023-03-14

当您以某种方式混淆了java本身时,就会发生这种情况。您正在尝试运行一个java 6虚拟机,其中发现了一个JRE 7。即使在配置错误的环境中键入命令行javajava-version,也可能会显示此问题。JAR不是问题所在,除非JAR中的代码在Windows注册表中查找JAR(这可能不是您的情况)。

在我的例子中,我使用了java。exejavaw。exe和javaws。在Windows/System32文件夹中从Java 6执行的exe(不知道它是如何出现的)。JDK和JRE的其余部分可以在C:\Java\JDK_1.7内的路径中找到。0\bin。哎呀!

 类似资料:
  • 运行时 我得到以下错误: ------------编辑----------------------------- 注意:我使用的是Windows 7(64位)。 我已经尝试卸载sencha touch cmd并重新安装。但仍然是同样的错误。

  • 源代码 ENS注册表是ENS系统中的核心合约,所有的ENS查询都从注册表开始。注册表负责管理域名列表,记录每个域名的所有者、解析器和TTL,并允许域名的所有者对这些数据进行更改。 ENS注册表的详细信息请参阅EIP137。 获取所有者 function owner(bytes32 node) external view returns (address); 1 以上函数返回node所标识域名的所有

  • 问题内容: 在跑步的时候 我收到以下错误: 错误:注册表项’Software \ JavaSoft \ Java Runtime Environment’\ CurrentVersion’ 的值为“ 1.8”,但必须为“ 1.7”。错误:找不到java.dll错误:找不到Java SE运行时环境。 ,命令显示如下: Java版本“ 1.8.0_40” Java™SE运行时环境(内部版本1.8.0_

  • 获取指定的注册表子键的内容,每次一个项目。 Loop, RootKey [, Key, IncludeSubkeys?, Recurse?] 参数 RootKey 必须为 HKEY_LOCAL_MACHINE(或 HKLM)、HKEY_USERS(或 HKU)、HKEY_CURRENT_USER(或 HKCU)、HKEY_CLASSES_ROOT(或 HKCR)或 HKEY_CURRENT_CON

  • 我有一个Docker1.12在CentOS上运行。我正在尝试添加不安全的注册表到它和文件中提到的东西只是不工作。系统使用,因此我创建了文件。 加载后台进程并重新启动docker服务后,systemd显示环境变量在那里 但是当我运行时,我没有看到添加了不安全的注册表 将图像推送到失败,原因是 有什么可以做的吗?我是不是漏掉了什么? 更新 之后,不安全的注册表开始工作。

  • 问题内容: 我正在公司网络上工作。 尝试安装但是我一次又一次收到此错误。 也尝试过此操作: 仍然出现相同的错误。 问题答案: 尝试的事情: 确保您可以连接互联网: 确保您的DNS解析器正常工作: 确保您可以访问Registry.npmjs.org: 确保您可以通过https连接。 在浏览器中尝试:https : //registry.npmjs.org/ 确保您尝试连接到: 而不是: 或其他由少量