簡體   English   中英

帶有 Maven Wrapper 的 Java 17 導致無法識別的 VM 選項“MaxPermSize=512m”

[英]Java 17 with Maven Wrapper results in Unrecognized VM option 'MaxPermSize=512m'

我使用OpenJDK 17Spring Initializr的 Maven Wrapper 3.8.2(Maven 項目、JAR 打包、Java 17、Spring Boot 2.6.0)。 沒有額外的依賴。

 user@DESKTOP-U2OU5HG MINGW64 /c/Projects/my-project (master) $ java -version openjdk version "17" 2021-09-14 OpenJDK Runtime Environment (build 17+35-2724) OpenJDK 64-Bit Server VM (build 17+35-2724, mixed mode, sharing)

在運行任何./mvnw.cmd -version./mvnw.cmd clean install時,我總是收到以下消息:

 Unrecognized VM option 'MaxPermSize=512m' Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.

切換到OpenJDK 16.0.2解決了這個問題,但是,我需要使用 Java 17。

如何讓它運行? 沒有設置MaxPermSize=512m

實際上-XX:MaxPermSize=size根據 Java® Development Kit Version 16/17 Tool Specifications 標記如下(請參閱鏈接):

  • 對於 Java 16,它已過時
  • 對於 Java 17,它已被刪除

然而, mvnw.cmd腳本中的 Maven 包裝器,除了必需的JAVA_HOME之外,還使用了一堆可選的環境變量,例如M2_HOME和這些以MAVEN_前綴開頭的變量。

重要的是MAVEN_OPTS ,其中可能會出現這樣一個已刪除的 Java 選項,從而導致無法在較新版本上啟動 JVM。 就我而言,我有類似的東西:

MAVEN_OPTS="-Xmx4g -XX:MaxPermSize=512m -Dfile.encoding=UTF-8"

解決方案是從環境變量中刪除選項或將此行添加到 Maven Wrapper 腳本以覆蓋MAVEN_OPTS值,以最小形式:

MAVEN_OPTS=

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM