目前我的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的地方。然而,它似乎是一个二进制文件,而不是一个安装程序。检查C:\Program Files\Java
我发现了一个jdk-17和jre1.8.0的文件夹,所以我将刚刚下载的jdk-11文件夹复制到那里。检查路径环境,我看到这两行:
C:\Program Files\Common Files\Oracle\Java\javapath
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
字符串
检查javapath的64位,我看到有java.exe,javac.exe,javaw.exe,jshell.exe。这是否意味着我应该用jdk-11中的文件替换这些文件?
2条答案
按热度按时间wrrgggsh1#
对于Linux用户,运行命令
sudo update-alternatives --config java
,它将返回您拥有的java JDK列表,您可以简单地使用其索引来选择您的首选版本zvms9eto2#
1.创建指向首选版本的新自定义变量
x1c 0d1x的数据
1.将%JAVA_HOME%/bin设置为路径变量的第一个条目
的
1.利润!
查看
java -version
为什么不删除Oracle Java路径条目,而不用担心路径中的JAVA_HOME位置?
您可能会建议简单地删除安装程序预先添加到Windows PATH的Oracle Java路径。是的,我也想到了这一点,但安装程序也会将java.exe,javaw.exe和javaws.exe文件复制到C:\Windows\System32目录,它也在Windows PATH变量中。因此,与其追踪安装程序放置Java的所有可能目录,并避免删除实际上可能对某个进程有必要的System32文件,我决定,最好的选择是将首选的Java Home目录添加到路径前面。
来源:How to set custom Java path after installing JDK 8 – Douglas C. Ayers