如何降级JDK?

How to downgrade JDK?

提问人:Ooker 提问时间:10/5/2021 更新时间:10/5/2021 访问量:22571

问:

目前我的 Java 版本是 17。Neo4j 要求我安装 Java 11 或 OpenJDK 11,否则它会给出错误 java.lang.IllegalAccessException: module java.base does not open java.nio to unnamed module @1817d444。我想我需要降级到 JDK 11。

Java Platform, Standard Edition 11 Reference Implementations 是我唯一可以获取 JDK 11 的地方。但是,它似乎是一个二进制文件,而不是一个设置。检查我找到了 jdk-17 和 jre1.8.0 的文件夹,所以我将我刚刚下载的文件夹 jdk-11 复制到那里。检查路径环境,我看到以下两行:C:\Program Files\Java

C:\Program Files\Common Files\Oracle\Java\javapath
C:\Program Files (x86)\Common Files\Oracle\Java\javapath

检查 64 位的 javapath 我看到有 java.exe、javac.exe、javaw.exe、jshell.exe。这是否意味着我应该用 jdk-11 中的文件替换这些文件?

java neo4j 路径 java-11

评论

1赞 Holger 10/5/2021
JDK 11 和 JDK 17 之间的区别在于,您不能再使用该选项启用此类非法访问。但是,您仍然可以使用 ,而无需切换到较旧的 JDK。当然,从长远来看,对于供应商在了解封装目标后仍坚持进行非法访问的软件,将无法治愈。--illegal-access=permit--add-opens java.base/java.nio=ALL-UNNAMED

答:

7赞 Ooker 10/5/2021 #1
  1. 创建指向首选版本的新自定义变量

  2. 将 %JAVA_HOME%/bin 设置为路径变量的第一个条目

  3. 利润!

    检查java -version

为什么不直接删除 Oracle Java 路径条目,而不用担心JAVA_HOME在路径中的位置呢?

您可能建议直接删除安装程序在 Windows PATH 前面附加的 Oracle Java 路径。是的,我也想到了这一点,但安装程序还会将 java.exe、javaw.exe 和 javaws.exe 文件复制到 C:\Windows\System32 目录,该目录也在 Windows PATH 变量中。因此,与其追逐安装程序放置 Java 的所有可能目录,并且为了避免删除某些进程实际上可能需要的 System32 文件,我决定简单地将我首选的 Java 主目录附加到路径是最佳选择。

来源:安装 JDK 8 后如何设置自定义 Java 路径 – Douglas C. Ayers

评论

2赞 Andy Turner 10/5/2021
请在您的问题/答案中明确说明这指的是什么。是特定的操作系统吗?特定的 IDE?
0赞 Ooker 10/5/2021
这是在 Windows 上,但我认为它并不特定于 IDE
2赞 Andy Turner 10/5/2021
此外,您应该记住,这将在整个系统中设置环境变量,因此它可能会无意中降级 Java 版本以用于其他事情。这个答案建议在 neo4j 启动脚本中设置变量,因此它仅适用于 neo4j。
0赞 Ooker 10/5/2021
我不知道。非常感谢
1赞 Ťëå Bäğ 12/18/2023 #2

对于 linux 用户,run command 它将返回您拥有的 java JDK 列表,您可以简单地使用其索引来选择它sudo update-alternatives --config java