FindJava — CMake 4.0.3 Documentation (original) (raw)

Find Java

This module finds if Java is installed and determines where the include files and libraries are. The caller may set variable JAVA_HOMEto specify a Java installation prefix explicitly.

See also the FindJNI module to find Java Native Interface (JNI).

Added in version 3.10: Added support for Java 9+ version parsing.

Specify one or more of the following components as you call this find module. See example below.

Runtime = Java Runtime Environment used to execute Java byte-compiled applications Development = Development tools (java, javac, javah, jar and javadoc), includes Runtime component IdlJ = Interface Description Language (IDL) to Java compiler JarSigner = Signer and verifier tool for Java Archive (JAR) files

This module sets the following result variables:

Java_JAVA_EXECUTABLE = the full path to the Java runtime Java_JAVAC_EXECUTABLE = the full path to the Java compiler Java_JAVAH_EXECUTABLE = the full path to the Java header generator Java_JAVADOC_EXECUTABLE = the full path to the Java documentation generator Java_IDLJ_EXECUTABLE = the full path to the Java idl compiler Java_JAR_EXECUTABLE = the full path to the Java archiver Java_JARSIGNER_EXECUTABLE = the full path to the Java jar signer Java_VERSION_STRING = Version of java found, eg. 1.6.0_12 Java_VERSION_MAJOR = The major version of the package found. Java_VERSION_MINOR = The minor version of the package found. Java_VERSION_PATCH = The patch version of the package found. Java_VERSION_TWEAK = The tweak version of the package found (after '_') Java_VERSION = This is set to: major[.major[.major[.minor[.$patch[.$tweak]]]

Added in version 3.4: Added the Java_IDLJ_EXECUTABLE and Java_JARSIGNER_EXECUTABLEvariables.

The minimum required version of Java can be specified using thefind_package() syntax, e.g.

NOTE: ${Java_VERSION} and ${Java_VERSION_STRING} are not guaranteed to be identical. For example some java version may return:Java_VERSION_STRING = 1.8.0_17 and Java_VERSION = 1.8.0.17

another example is the Java OEM, with: Java_VERSION_STRING = 1.8.0-oemand Java_VERSION = 1.8.0

For these components the following variables are set:

Java_FOUND - TRUE if all components are found. Java__FOUND - TRUE if is found.

Example Usages:

find_package(Java) find_package(Java 1.8 REQUIRED) find_package(Java COMPONENTS Runtime) find_package(Java COMPONENTS Development)