tmm*_*mls 11 cl.exe graalvm graalvm-native-image
我正在尝试使用 GraalVM 和本机图像构建本机应用程序。开始构建过程时发生错误。类路径中似乎缺少 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
Run Code Online (Sandbox Code Playgroud)
我正在使用 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 或哪个安装包包含此文件?
Zac*_*ach 14
很抱歉你遇到了麻烦;希望我们能很快把它扼杀在萌芽状态!
看起来您缺少一些依赖项,因此我会尽力为您解决问题。
要在 Windows 上构建本机 GraalVM 映像,您需要Microsoft Visual C++ (MSVC)。所需的版本取决于您的 GraalVM 发行版所基于的 JDK 版本。
对于使用 Java 8 的 GraalVM 发行版,您需要MSVC 2010 SP1
推荐的安装方法是使用 Microsoft Windows SDK 7.1:
GRMSDKX_EN_DVD.iso从 Microsoft下载 SDK 文件。F:\Setup\SDKSetup.exe直接打开挂载镜像。
根据 GraalVM 本机图像参考,您可以通过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
鉴于您的代码是有序的,使用正确的工具链将解决您的问题。如果出现任何其他问题,我鼓励您为他们发布另一个问题;祝你的项目好运!
小智 10
(感谢 @Gnosis00 和 @Zach 的解决方案。它几乎对我有用。这是一个改进的版本,使得在 IDEA IntelliJ 中也可以进行本机构建。)
使用文本编辑器修改native-image.cmd(在您的%JAVA_HOME%\bin目录中),使其开头为
@echo off
call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" > nul
Run Code Online (Sandbox Code Playgroud)
每次native-build调用时都会自动添加所需的构建工具链。您不必再从 Visual Studio 的本机工具命令提示符启动它。
请注意结尾> nul以抑制 的任何输出vcvars64.bat。否则,Spring Boot 的 Gradle 构建脚本对 GraalVM 的版本检测将会失败。
此解决方案已使用Microsoft Visual Studio 2022 CE、IDEA IntelliJ 2022.1.3和graalvm-ce-java17-windows-amd64-22.3.1进行测试。
小智 8
GRAALVM_HOME为 graalvm 所在的位置。%GRAALVM_HOME%\bin\native-image.cmd调用“C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Community \ VC \ Auxiliary \ Build \ vcvarsx86_amd64.bat”
注意:vcvarsx86_amd64.bat根据您的 VS 版本,位置可能会有所不同。
经过 2 年的努力,我放弃了使用 GraalVM 构建本机可执行文件的尝试。我现在使用 jPackage 命令行工具。它默认附带最新版本的 Java。奇迹般有效。没有麻烦,没有额外的依赖,没有错误,免费,...
更多信息: https: //youtu.be/ZGW9AalZLN4
| 归档时间: |
|
| 查看次数: |
4493 次 |
| 最近记录: |