1、JDK HOME 指定是 Java 编译器根目录 搜索目录的优先顺序:
1、用户调用 java.path.setJdkHome() 设置的目录
2、进程环境变量 %JAVA_HOME% 设置的目录
3、搜索包含 javac.exe 的目录,这会检查%Path% 环境变量里的所有目录
4、自注册表查找 JDK 目录
5、搜索默认安装位置等 2、JRE HOME 指定是 Java 运行时器根目录 搜索目录的优先顺序:
1、用户调用 java.path.setJreHome() 设置的目录
2、用户调用 java.path.setJdkHome(),j 设置的目录
3、进程环境变量 %JRE_HOME% 设置的目录
4、进程环境变量 %JAVA_HOME% 设置的目录
5、搜索包含 javac.exe 的目录,这会检查%Path% 环境变量里的所有目录
6、自注册表查找 JDK 目录
7、搜索默认安装位置等。 JVM 也是在 JRE 目录下查找,搜索顺序基本如上,
但搜索 JVM 会排除 64位JRE,仅查找包含可用的 32 位 jvm.dll。
JVM 用于调用 java 构造函数创建虚拟机,例如:
在调用 java.openProcess,java.popenProcess 创建 Java 进程时,
则优先查找64 位 JRE 运行时目录下的 java.exe, javaw.exe。
也可以支持 32 位 JRE。搜索目录规则
var jvm = java()
创建 Java 虚拟机或者调用任何获取 JVM 目录以后,
如果成功获取到可用的 JVM 路径,那么在一个进程实例中将不能再以任何方式修改 JVM 路径,
调用 java.path.setJreHome() 或修改 %JRE_HOME% 环境变量都不能再改变 JVM 路径。
参数指定的 JRE 根目下是否包含 java.exe,javaw.exe
成功返回 JRE 目录
参数指定的 JRE 根目下是否包含有效 jvm.dll
成功返回 true
用于获取 JDK 编译器根目录
关于初始化JDK,JRE目录的规则细节请参考 java.path 库函数文档
自注册表查找安装的 JDK 目录
自注册表查找安装的 JDK 目录,
找到目录则返回 JDK 根目录,内部版本号,
所有参数可选,@x64 指定是否查询 64位注册表,32位系统忽略此参数,
version 用一个字符串指定内部版本号,
例如 Java 8 的内部版本号为 "1.8"
返回 JRE 运行时目录下的 /bin 目录
关于初始化JDK,JRE目录的规则细节请参考 java.path 库函数文档
查找包含 64位 或 32位 java.exe,javaw.exe 的
JRE 运行时目录,用于调用 java.openProcess,java.popenProcess
以创建 Java 进程。搜索顺序为(64位优先):
关于初始化JDK,JRE目录的规则细节请参考 java.path 库函数文档
在默认安装目录搜索 JRE 目录,
可选用 @version 指定版本,
@x64 如果为 true 则仅搜索 64 位 JRE,32位系统忽略此参数,
@jdkOnly 如果为 true 则仅搜索 JDK 目录
在默认安装目录搜索 JRE 目录,
可选用 @version 指定版本,
@x64 如果为 true 则仅搜索 64 位 JRE,32位系统忽略此参数,
@jdkOnly 如果为 true 则仅搜索 JDK 目录
自注册表查找安装的 JRE 目录
自注册表查找安装的 JRE 目录,
找到目录则返回 JDK 根目录,内部版本号,
所有参数可选,@x64 指定是否查询 64位注册表,32位系统忽略此参数,
version 用一个字符串指定内部版本号,
例如 Java 8 的内部版本号为 "1.8"
用于获取创建 Java 虚拟机的 32 位 jvm.dll 路径,
此路径初始化成功即不允许修改,
关于初始化JDK,JRE目录的规则细节请参考 java.path 库函数文档
包含可创建 Java 虚拟机的 JRE 运行时根目录,
此路径一旦获取成功在当前进程中即不允许再修。
,
关于初始化JDK,JRE目录的规则细节请参考 java.path 库函数文档
指定第一优先级检测的 JDK 根目录,
在该目录下查找 Java 编译器 javac.exe 。
如该目录不符合要求则继续搜索其他合适的目录。
指定第一优先级检测的 JRE 运行时根目录,
在该目录下查找64位或32位 java.exe,javaw.exe 以调用
java.openProcess,java.popenProcess 创建 Java 进程。
优先在该目录下搜索 JVM 用于创建 java 虚拟机对象,
如该目录不符合要求则继续搜索其他合适的目录。