FindJava¶
查找 Java 安装并确定其运行时工具和开发组件
find_package(Java [<version>] [COMPONENTS <components>...] [...])
版本 3.10 中新增: 支持 Java 9+ 版本解析。
组件¶
此模块支持可选组件,这些组件可以通过 find_package() 命令指定
find_package(Java [COMPONENTS <components>...])
支持的组件包括
Runtime查找用于执行 Java 字节码编译的应用程序的 Java 运行时环境。
Development查找开发工具(
java,javac,javah,jar, 和javadoc)。指定此组件也意味着包含Runtime组件。IdlJ3.4 版本新增。
查找接口描述语言(IDL)到 Java 的编译器。
JarSigner3.4 版本新增。
查找 Java 存档(JAR)文件的签名和验证工具。
如果未指定任何组件,则该模块默认搜索 Runtime 组件。
结果变量¶
此模块定义了以下变量
Java_FOUND3.3 版本中新增。
布尔值,指示是否找到(所请求版本的)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_EXECUTABLEJava 运行时的完整路径。
Java_JAVAC_EXECUTABLEJava 编译器的完整路径。
Java_JAVAH_EXECUTABLEJava 头文件生成器的完整路径。
Java_JAVADOC_EXECUTABLEJava 文档生成器的完整路径。
Java_IDLJ_EXECUTABLE3.4 版本新增。
Java idl 编译器的完整路径。
Java_JAR_EXECUTABLEJava 归档工具的完整路径。
Java_JARSIGNER_EXECUTABLE3.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)