FindJava¶
查找 Java 安装并确定其运行时工具和开发组件。
3.10 版本新增:支持 Java 9+ 版本解析。
组件¶
此模块支持以下组件
运行时
查找用于执行 Java 字节编译应用程序的 Java 运行时环境。
开发
查找开发工具(
java
、javac
、javah
、jar
和javadoc
)。指定此组件也隐含Runtime
组件。IdlJ
3.4 版本新增。
查找接口描述语言 (IDL) 到 Java 编译器。
JarSigner
3.4 版本新增。
查找 Java 存档 (JAR) 文件的签名和验证工具。
组件可以选择使用标准语法指定,使用
find_package(Java [COMPONENTS <components>...])
如果未指定 COMPONENTS
,则模块默认搜索 Runtime
组件。
结果变量¶
此模块定义了以下变量
Java_FOUND
布尔值,指示是否找到具有所有指定组件的 Java。
Java_<component>_FOUND
布尔值,指示是否找到
<component>
。Java_VERSION
找到的 Java 版本。设置为:
<major>[.<minor>[.<patch>[.<tweak>]]]
。Java_VERSION_MAJOR
找到的 Java 的主版本。
Java_VERSION_MINOR
找到的 Java 的次版本。
Java_VERSION_PATCH
找到的 Java 的补丁版本。
Java_VERSION_TWEAK
找到的 Java 的调整版本(下划线字符
_
后面的部分)。Java_VERSION_STRING
找到的 Java 版本,例如
1.6.0_12
。注意
Java_VERSION
和Java_VERSION_STRING
不保证相同。例如,某些 Java 版本可能返回:Java_VERSION_STRING = 1.8.0_17
和Java_VERSION = 1.8.0.17
。另一个例子是 Java OEM,其中
Java_VERSION_STRING = 1.8.0-oem
和Java_VERSION = 1.8.0
。
缓存变量¶
以下缓存变量也可以设置
Java_JAVA_EXECUTABLE
Java 运行时的完整路径。
Java_JAVAC_EXECUTABLE
Java 编译器的完整路径。
Java_JAVAH_EXECUTABLE
Java 头文件生成器的完整路径。
Java_JAVADOC_EXECUTABLE
Java 文档生成器的完整路径。
Java_IDLJ_EXECUTABLE
3.4 版本新增。
Java IDL 编译器的完整路径。
Java_JAR_EXECUTABLE
Java 归档工具的完整路径。
Java_JARSIGNER_EXECUTABLE
3.4 版本新增。
Java jar 签名工具的完整路径。
提示¶
此模块接受以下变量
JAVA_HOME
调用者可以设置此变量以明确指定 Java 的安装目录。
示例¶
查找 Java
find_package(Java)
查找 Java 并确保其版本不低于指定的最低版本
find_package(Java 1.8)
查找 Java 并使其成为必需(如果未找到 Java,则处理将停止并显示错误消息)
find_package(Java 1.8 REQUIRED)
指定需要查找的 Java 组件
find_package(Java COMPONENTS Development JarSigner)