Java XX命令行选项无法识别(例如:-XX:+ UseStringDeduplication,-XX:MaxGCPauseMillis)

时间:2016-11-15 13:52:08

标签: java java-8

我正在尝试在命令行上指定一些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)

任何线索都表示赞赏。

1 个答案:

答案 0 :(得分:5)

输入字符时要小心。 –XX:+UseG1GC之前的短划线不是ASCII hyphen/minus,而是“En Dash”字符。

如果仔细查看问题的浏览器视图,您可能会注意到长度和垂直位置的差异,例如:与-XX:+UseStringDeduplication选项进行比较时。但是,这取决于实际的字体,并且在您输入命令行的编辑器/控制台中,两个字符看起来都不一样。

对于java命令行选项,您必须始终使用ASCII连字符/减号字符(U+002D),这在普通键盘上按 - 时应该是默认值。