我想使用以下命令在我的 Windows 10 Home 64 位計算機上將 Quarkus 專案編譯為本機:
.\mvnw package -Pnative
計算機安裝了 GraalVM 21.3.0,并相應地設定了 GRAALVM_HOME、JAVA_HOME 和 PATH。本機映像已安裝。它還通過 WSL2 運行 Docker。理論上,一切都應該設定。相反,我得到了這個錯誤,使用了一個只安裝了幾個擴展的基本專案。專案使用 Maven 作為包管理器。
Fatal error:java.nio.file.InvalidPathException: Illegal char <"> at index 0: "C:\Program Files\Git\bin\\cl.exe
at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:229)
at java.base/java.nio.file.Path.of(Path.java:147)
at java.base/java.nio.file.Paths.get(Paths.java:69)
at com.oracle.svm.hosted.c.codegen.CCompilerInvoker.lambda$lookupSearchPath$1(CCompilerInvoker.java:497)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127)
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:543)
at com.oracle.svm.hosted.c.codegen.CCompilerInvoker.lookupSearchPath(CCompilerInvoker.java:499)
at com.oracle.svm.hosted.c.codegen.CCompilerInvoker.getCCompilerPath(CCompilerInvoker.java:509)
at com.oracle.svm.hosted.c.codegen.CCompilerInvoker.getCCompilerInfo(CCompilerInvoker.java:356)
at com.oracle.svm.hosted.c.codegen.CCompilerInvoker.<init>(CCompilerInvoker.java:70)
at com.oracle.svm.hosted.c.codegen.CCompilerInvoker$WindowsCCompilerInvoker.<init>(CCompilerInvoker.java:110)
at com.oracle.svm.hosted.c.codegen.CCompilerInvoker.create(CCompilerInvoker.java:84)
at com.oracle.svm.hosted.NativeImageGenerator.setupNativeImage(NativeImageGenerator.java:864)
at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:527)
at com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:488)
at com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:403)
at com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:569)
at com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:122)
at com.oracle.svm.hosted.NativeImageGeneratorRunner$JDK9Plus.main(NativeImageGeneratorRunner.java:599)
我嘗試過的事情是檢查 PATH 環境變數,特別是去 Git 目錄的那個,并且還嘗試在 IntelliJ 中搜索專案搜索樹,但沒有運氣。如果我能找到問題所在,似乎很容易解決。有任何想法嗎?
提前致謝!
uj5u.com熱心網友回復:
在此之前很多次,我通過終端收到的錯誤訊息往往不是很有幫助。
當初嘗試做原生編譯的時候,看過一個教程,里面的老師用Mac作為默認的開發環境。
Windows 有一個額外的步驟,這里描述:
at index 0: "C:\Program Files\Git\bin\\cl.exe at java.base/sun.nio.fs.WindowsPathParser.normalize">
基本上,我需要使用 Windows 10 SDK 安裝 Visual Studio 2022。我安裝了一個 Visual Studio 2017 版本,但補丁太低,我沒有磁盤空間來簡單地更新它在 C: 驅動器上的安裝位置。
安裝后,我必須打開 x64 Native Tools 命令提示符(開始 > Visual Studio 2022 > x64 Native Tools 命令提示符)。該命令在常規 Powershell 或 CMD 中不起作用。僅在重新啟動計算機后編譯才成功 - 在此之前我以錯誤 c1083 結束。
現在我有一個 51 MB 的可執行檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/378560.html
