4

Windows 10 安装 OpenJDK11 和 Oracle JDK8 共存以及“Error: invalid argument: Files...

 2 years ago
source link: https://hellodk.cn/post/948
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Windows 10 安装 OpenJDK11 和 Oracle JDK8 共存以及“Error: invalid argument: Files\Java\jdk-11\jre” 问题解决

首先,OpenJDK11 下载地址: http://jdk.java.net/java-se-ri/11

安装 OpenJDK11 参考文章: Windows10系统下openjdk-11环境(java)的安装配置

使用 jlink.exe 生成 jre11 的环境时遇到错误

Error: invalid argument: Files\Java\jdk-11\jre

这个问题是由于 Windows 路径中存在空格导致的。我们使用命令 jlink.exe --module-path jmods --add-modules java.desktop --output %JAVA_HOME%\jre 将生成的文件存放在 JAVA_HOME 环境变量对应的路径的 jre 子文件夹中。但是 Oracle JDK8 默认安装的 jdkjre 路径在 C:\Program Files\Java

以上 jlink.exe 生成 jre11 的命令需要通过管理员权限打开 cmd 窗口,cd 到路径 C:\Users\dk\Downloads\openjdk-11+28_windows-x64_bin\jdk-11\bin

# 在路径两边加上英文/半角单引号即可
jlink.exe --module-path jmods --add-modules java.desktop --output "%JAVA_HOME%\jre"
  • 系统环境变量 Path 中的值 C:\ProgramData\Oracle\Java\javapath 可以删除
  • JDK8 的环境变量 JAVA_HOME_8 的值是 C:\Program Files\Java\jdk1.8.0_144
  • JRE8 的环境变量 JRE_HOME_8 的值是 C:\Program Files\Java\jre1.8.0_144
  • 由于后面主用 JDK11 开发,所以 JDK11 的环境变量 JAVA_HOME 的值是 C:\Program Files\Java\jdk11 下面 JRE_HOME 类同
  • JRE11 的环境变量 JRE_HOME 的值是 C:\Program Files\Java\jdk1\jre
  • CLASSPATH 不用改
  • C:\Program Files\Java\jre1.8.0_144C:\Program Files\Java\jdk1.8.0_144\jre 这两个 jre 的区别是:前者偏重于运行 Java 程序时使用,后者偏重于 Java 开发者在编译后运行 Java 程序使用,这也和环境变量配置的习惯有关。仅仅运行 Java 程序时(比如 java -jar xxx.jar)会优先读取 JRE_HOME

下面是 cmd 测试结果

C:\Users\dk>echo %JAVA_HOME%
C:\Program Files\Java\jdk-11
C:\Users\dk>echo %JRE_HOME%
C:\Program Files\Java\jdk-11\jre
C:\Users\dk>echo %JAVA_HOME_8%
C:\Program Files\Java\jdk1.8.0_144
C:\Users\dk>echo %JRE_HOME_8%
C:\Program Files\Java\jre1.8.0_144

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK