我需要安装 Java 8 SDK 才能使用 Bazel Build 构建 C++ 项目吗?

Do I need to install Java 8 SDK to use Bazel Build to build C++ project?

这个问题分为两部分:

  1. 从我在 https://github.com/bazelbuild/bazel/tree/master/src/main 中看到的情况来看,Bazel 是用 C++、Java 和一些 Linux .sh 文件混合编写的。我不确定核心实际上是 Java 还是 C++。发布页面中的 Windows 二进制文件是 .exe 而不是 .jar,这是否意味着我不需要 Java SDK 如果我永远不需要使用 Bazel 来构建 Java?

  2. 如果第一部分是假的,是不是一定要Java8SDK,或者Java8JRE 就够了吗?

You do need a JDK 最好是 Java 8。我在前段时间将它与 Java 7 一起使用,但现在它已被弃用。

您需要 JDK,因为 Bazel 只是一个构建管理工具。它调用 其他工具来编译和构建Java 项目。它对 C/C++ 项目或 Python 项目等做同样的事情

是的,你确实需要 JDK,至少 JDK 8. Bazel 的大部分内容都是用 Java 编写的。

在所有平台上,Bazel 是一个自解压二进制文件,在 Windows 上,它是一个自解压 .exe 文件。您第一次在 运行 Bazel 上看到的消息 ("Extracting Bazel installation...") 也暗示了这一点。

编辑:我认为 JRE 是不够的,即使您不构建任何 Java 规则,但我还没有证实这一点。

此处的其他答案似乎已过时。根据bazel的linux installation documentation,不需要jdk,bazel捆绑了一个jre:

Step 3: Install a JDK (optional) Bazel includes a private, bundled JRE as its runtime and doesn’t require you to install any specific version of Java.

However, if you want to build Java code using Bazel, you have to install a JDK.