我正在尝试在命令行上指定一些 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
返回
Exception in thread "main" org.apache.commons.cli.UnrecognizedOptionException: Unrecognized option: -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)
感谢任何线索。
最佳答案
输入字符时要小心。 –XX:+UseG1GC
之前的破折号不是 ASCII hyphen/minus ,但是 “En Dash”性格。
如果您仔细查看问题的浏览器 View ,您可能会注意到长度和垂直位置的差异,例如与 -XX:+UseStringDeduplication
选项进行比较时。但是,这取决于实际字体,并且在您输入命令行的编辑器/控制台中,两个字符看起来相同的可能性不大。
对于 java 命令行选项,您必须始终使用 ASCII 连字符/减号字符 (U+002D
),这应该是在普通键盘上按 - 时的默认值键盘。
关于无法识别 Java XX 命令行选项(例如 : -XX:+UseStringDeduplication, -XX:MaxGCPauseMillis),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40611555/