FindJava ignores JAVA_HINT for binaries
Moin moin
FindJava.cmake fails to properly find the java executable when one specifies a JAVA_HOME, but has another java in $PATH.
Minimal CMakeLists.txt:
cmake_minimum_required (VERSION 3.23.0)
project(FindJava-bug)
set(JAVA_HOME "/usr/local/openjdk17")
find_package(Java 17 REQUIRED COMPONENTS Runtime)
message("Found java: ${Java_FOUND}")
message("Java: ${Java_JAVA_EXECUTABLE}")
Output:
-- Found Java: /usr/local/bin/java (found suitable version "17.0.4", minimum required is "17") found components: Runtime
Found java: TRUE
Java: /usr/local/bin/java
In $PATH there is /usr/local/bin/java
with version 1.8.0_342
.
The value of Java_JAVA_EXECUTABLE should be the one pointing to the JAVA_HOME which it also correctly identified in the first part of the find call, i.e. /usr/local/openjdk17/bin/java
.