graal native image命令返回错误“请指定包含主入口点方法的类”

ljsrvy3e  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(1120)

我用gradle构建的应用程序不能用graal的原生image命令打包。
我使用以下方法构建组合jar:

gradlew --no-daemon assemble

然后,我使用以下方法测试cli应用程序:

java -jar build/libs/stackoverflow-cli-0.1-all.jar search -q "merge maps" -t java

输出是我期望的,所以这很好。但是,我想使用graalvm创建本机二进制文件。所以我运行这个命令:

native-image --no-server -cp build/libs/stackoverflow-cli-0.1-all.jar

它立即失败,并出现以下错误:

Warning: Ignoring server-mode native-image argument --no-server.
Error: Please specify class containing the main entry point method. (see --help)

我觉得这很奇怪。接下来,我尝试按照错误提示指定主类:

native-image --no-server -cp build/libs/stackoverflow-cli-0.1-all.jar com.eddie.StackoverflowCliCommand

这给了我一个不同的错误:

Warning: Ignoring server-mode native-image argument --no-server.
[com.ivansinsurance.stackoverflowclicommand:1544]    classlist:   3,060.25 ms,  0.96 GB
[com.ivansinsurance.stackoverflowclicommand:1544]        setup:     809.46 ms,  0.96 GB
Error: Default native-compiler executable 'cl.exe' not found via environment variable PATH
Error: Use -H:+ReportExceptionStackTraces to print stacktrace of underlying exception
Error: Image build request failed with exit status 1

我不知道这个错误是什么意思。以下是我使用的java版本:

openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment GraalVM CE 20.1.0 (build 11.0.7+10-jvmci-20.1-b02)
OpenJDK 64-Bit Server VM GraalVM CE 20.1.0 (build 11.0.7+10-jvmci-20.1-b02, mixed mode, sharing)

非常感谢您的帮助!

dwthyt8l

dwthyt8l1#

我安装了VisualStudio2019。
然后我为VS2019启动了x64本机工具命令提示符
然后我跑了:
'本机映像--无服务器-cp build/libs/stackoverflow-cli-0.1-all.jar com.eddie.stackoverflowclicommand'
结果成功了!

相关问题