14

我正在尝试使用 GraalVM 和 native-image 构建本机应用程序。启动构建过程时发生错误。类路径中似乎缺少 cl.exe。就像 GraalVM 网站上提到的那样,我已经安装了“GRMSDKX_EN_DVD.iso”(适用于 Windows 7 和 .NET 的 Windows SDK)。我还尝试安装适用于 Windows 10 的 Windows SDK。

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>native-image -jar C:\Users\tm\Desktop\DemoGraalVM\target\Demo-1.0-SNAPSHOT.jar
[Demo-1.0-SNAPSHOT:28776]    classlist:   2,435.83 ms,  1.16 GB
[Demo-1.0-SNAPSHOT:28776]        setup:     646.59 ms,  1.16 GB
Error: Default native-compiler executable 'cl.exe' not found via environment variable PATH
Error: To prevent native-toolchain checking provide command-line option -H:-CheckToolchain
Error: Use -H:+ReportExceptionStackTraces to print stacktrace of underlying exception
Error: Image build request failed with exit status 1

我正在使用 Windows 10,graalvm-ce-java8-windows-amd64-20.2.0。我还在运行 Visual Studio Community Edition 并使用 Visual Studio 2019 Developer Command Prompt v16.3.1。Java 应用程序是使用 Maven 在 IntelliJ Community Edition 中构建的。

我怎样才能解决这个问题?我在哪里下载 cl.exe 或哪个安装包包含此文件?

4

2 回答 2

19

很抱歉给您带来麻烦;希望我们能很快将其扼杀在萌芽状态!
看起来您缺少一些依赖项,所以我会尽力为您解决问题。


要在 Windows 上构建本机 GraalVM 映像,您需要Microsoft Visual C++ (MSVC)。所需的版本取决于您的 GraalVM 发行版所基于的 JDK 版本。

  • 对于使用 Java 8 的 GraalVM 发行版,您需要MSVC 2010 SP1

    推荐的安装方法是使用 Microsoft Windows SDK 7.1:

    1. 从 Microsoft下载 SDK 文件GRMSDKX_EN_DVD.iso
    2. F:\Setup\SDKSetup.exe直接打开挂载镜像。

    根据 GraalVM native-image reference,您可以通过Microsoft 的 Window SDK 7.1 图像轻松获取

  • 对于使用 Java 11 的 GraalVM 发行版,您需要MSVC 2017 15.5.5 或更高版本
    肯定会建议您只使用最新版本(当前为 2019 年),除非您已经在工作流程中使用了另一个版本。你可以在这里得到它。


安装 Visual Studio 后,所有构建命令都应通过本机工具命令提示符运行。
如果在安装 Visual Studio 时保留默认的“开始”菜单快捷方式,则可通过以下方式访问:
Start -> Visual Studio 2019 -> Tools -> x64 Native Tools Command Prompt


鉴于您的代码是有序的,使用适当的工具链将解决您的问题。如果出现任何其他问题,我鼓励您为他们发布另一个问题;祝你的项目好运!

于 2020-10-09T18:08:03.023 回答
1

您需要为Microsoft Visual C++设置环境。

我正在使用 Visual Studio 2017,所以我必须使用: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat

于 2020-10-05T15:22:59.623 回答