如何修复“Unrecognized VM option 'UseConcMarkSweepGC'”错误?

18

我已经按照在IntelliJ中开始使用codenameone的指示进行操作,但是当我设置我的第一个项目时,基于示例应用程序,我收到了以下错误:

"C:\Program Files\Java\jdk-15.0.1\bin\java.exe" -Xms128m -Xmx1014m -XX:ReservedCodeCacheSize=512m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -XX:CICompilerCount=2 -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -ea -Dsun.io.useCanonCaches=false -Djdk.http.auth.tunneling.disabledSchemes=\"\" -Djdk.attach.allowAttachSelf=true -Djdk.module.illegalAccess.silent=true -Dkotlinx.coroutines.debug=off "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.1\lib\idea_rt.jar=61544:C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\reinp\OneDrive - beuthhs\beuth\Patterns und Frameworks\justtrivia\out\production\justtrivia;C:\Users\reinp\OneDrive - beuthhs\beuth\Patterns und Frameworks\justtrivia\src;C:\Users\reinp\OneDrive - beuthhs\beuth\Patterns und Frameworks\justtrivia\lib\CodenameOne.jar;C:\Users\reinp\OneDrive - beuthhs\beuth\Patterns und Frameworks\justtrivia\JavaSE.jar;native\internal_tmp;lib\impl\cls" com.codename1.impl.javase.Simulator com.patrickreinbold.justtrivia.JustTrivia
Unrecognized VM option 'UseConcMarkSweepGC'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Process finished with exit code 1

我看到这与Java 8有关,但在IntelliJ的说明中没有提到使用Java 8。 Java 8是否总是必要的?Codenameone能否也在Java 15上运行?

编辑:现在,我只需复制具有java命令的第一行并删除UseConcMarkSweepGC标志,然后在终端中运行它即可打开它。 但我仍然不确定这是否是“正确的方式”来做,或者现在是否会出现问题。


2
这将有所帮助:https://openjdk.java.net/jeps/363,https://dev59.com/tFQK5IYBdhLWcg3wN9VV,上述JVM标志将适用于Java版本<14,但不适用于大于该版本的Java。 - dkb
5个回答

14

使用另一个选项来忽略不支持的虚拟机选项:

-XX:+IgnoreUnrecognizedVMOptions

如果您可以添加此选项,那么您也可以直接移除导致错误的选项。 - undefined

4
这是一个与NetBeans构建脚本相关的问题,但这并不重要,因为Codename One目前仅支持Java 8和Java 11,所以你应该使用其中一种版本。

2

Homebrew 用户:

注释掉这些行

# /usr/local/etc/elasticsearch/jvm.options

## GC configuration
#-XX:+UseConcMarkSweepGC
#-XX:CMSInitiatingOccupancyFraction=75
#-XX:+UseCMSInitiatingOccupancyOnly

然后,如果您遇到了问题,

Invalid -Xlog option '-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m'

更新日志文件路径

# JDK 9+ GC logging
9-:-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m

为了

# JDK 9+ GC logging
9-:-Xlog:gc*,gc+age=trace,safepoint:file=/usr/local/var/log/elasticsearch/gc.log:utctime,pid,tags:filecount=32,filesize=64m

来源

在macOS上安装Elasticsearch 7.9.2失败的Brew安装方法

https://dev59.com/s7Xna4cB1Zd3GeqPPLB_#57993824


2

运行 export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

该命令用于设置Java环境变量,将Java版本设置为1.8。

1
目前你的回答不够清晰。请编辑并添加更多细节,以帮助其他人理解它如何回答所提出的问题。你可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

0
我之前也遇到过同样的问题,我将版本从21改为11(你可以先检查一下你的版本), 确保使用命令行更新了版本。
PATH=%JAVA_HOME%/bin;%PATH%

在那之后,我会去wrapper.config并进行更改。
#wrapper.java.command=/path/to/my/jdk/bin/java

我的Java之路
wrapper.java.command=C:\Program Files\Java\jdk-11\bin\java

我执行了StartSonar.bat,现在一切正常。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接