我正在尝试在命令行上指定一些GC调整选项,并且出于某种原因继续使用“未识别”选项'错误。
java -Dproperty1 = value -Dproperty2 = value2 -cp ./some/jarFile1.jar:./some/jarFile2.jar com.xyz.ClassFile -c / path / to / a / file -XX:+ UseG1GC - XX:+ UseStringDeduplication -XX:MaxGCPauseMillis = 200
返回
线程中的异常" main" org.apache.commons.cli.UnrecognizedOptionException:无法识别的选项:-XX:+ UseStringDeduplication
如果我删除了StringDeduplication,则使用XX:MaxGCPauseMillis
选项。
运行Java 8,版本信息:
java version "1.8.0_66" Java(TM) SE Runtime Environment (build 1.8.0_66-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
任何线索都表示赞赏。
答案 0 :(得分:5)
输入字符时要小心。 –XX:+UseG1GC
之前的短划线不是ASCII hyphen/minus,而是“En Dash”字符。
如果仔细查看问题的浏览器视图,您可能会注意到长度和垂直位置的差异,例如:与-XX:+UseStringDeduplication
选项进行比较时。但是,这取决于实际的字体,并且在您输入命令行的编辑器/控制台中,两个字符看起来都不一样。
对于java命令行选项,您必须始终使用ASCII连字符/减号字符(U+002D
),这在普通键盘上按 - 时应该是默认值。