bazel-eclipse icon indicating copy to clipboard operation
bazel-eclipse copied to clipboard

JDK configuration errors: "IllegalArgumentException: external/local_jdk", "Unable to locate a Java Runtime."

Open plaird opened this issue 2 years ago • 1 comments

JDK configuration with Bazel has always been troublesome. Even in Bazel 5, there are issues.

When BEF invokes Bazel commands, it does not set JAVA_HOME. Historically, this was ok. But recent versions of Bazel/Eclipse this has become more problematic. It seems Bazel is becoming more dependent on JAVA_HOME.

>> Unable to run coursier: The operation couldn’t be completed. Unable to locate a Java Runtime. Install a system JDK, for example brew install openjdk

>> IllegalArgumentException: external/local_jdk (DumpPlatformClassPath) See this post and add something like the follow to your .bazelrc file:

build --define=ABSOLUTE_JAVABASE='/Users/mbenioff/dev/openjdk_11.0.10_11.45.28_x64'
build --host_javabase=@bazel_tools//tools/jdk:absolute_javabase
build --javabase=@bazel_tools//tools/jdk:absolute_javabase

To make this better, we could set JAVA_HOME in the shell command using the configured JDK in Eclipse (if there is one) or JRE.

plaird avatar Apr 19 '22 05:04 plaird

Added some doc notes to point to this issue. For example: https://github.com/salesforce/bazel-eclipse/blob/master/docs/bef/install.md#installing-a-jdk

plaird avatar Apr 19 '22 05:04 plaird

The other workaround is to export JAVA_HOME in a shell, and launch Eclipse from that shell.

plaird avatar Oct 25 '22 14:10 plaird