【问题标题】:Do I need to install Java 8 SDK to use Bazel Build to build C++ project?我是否需要安装 Java 8 SDK 才能使用 Bazel Build 来构建 C++ 项目?
【发布时间】:2017-03-28 09:57:31
【问题描述】:

这个问题分为两部分:

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

  2. 如果第一部分为假,是必须是 Java 8 SDK,还是 Java 8 JRE 就足够了?

【问题讨论】:

    标签: bazel


    【解决方案1】:

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

    在所有平台上,Bazel 是一个自解压的二进制文件,在 Windows 上它是一个自解压的 .exe 文件。您在第一次运行 Bazel 时看到的消息(“正在提取 Bazel 安装...”)也暗示了这一点。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • “它调用其他工具来编译和构建”我知道,但是当我构建 C++ 二进制文件时,为什么 Bazel 应该调用 Java SDK?
      • 哦,我明白了。您应该只使用 .exe 以及他们需要的额外设置就可以了。该项目本身是 Java 优先的,在 C++ 中有一些辅助工具 - 查看代码库,大部分代码都在 Java 部分中。因此,如果您正在构建它,则需要 SDK。
      【解决方案3】:

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

      第 3 步:安装 JDK(可选) Bazel 包含一个私有的捆绑 JRE 作为它的运行时,不需要您安装任何特定版本 Java的。

      但是,如果您想使用 Bazel 构建 Java 代码,则必须 安装 JDK。

      【讨论】:

        猜你喜欢
        • 2017-07-26
        • 2011-08-22
        • 2020-11-17
        • 1970-01-01
        • 2014-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-12
        相关资源
        最近更新 更多