2016-11-15 35 views
1

我想在命令行上的一些GC调整选项,由于某种原因继续运行到“无法识别的选项”错误。的Java XX命令行选项无法识别的(如:-XX:+ UseStringDeduplication,-XX:MaxGCPauseMillis)

的java -Dproperty1 =值-Dproperty2 =值2 -cp ./some/jarFile1.jar:./some/jarFile2.jar com.xyz.ClassFile -c /路径/到/一个/文件-XX: + UseG1GC -XX:+ UseStringDeduplication -XX:在螺纹MaxGCPauseMillis = 200

返回

异常 “主” org.apache.commons.cli.UnrecognizedOptionException:无法识别的选项:-XX:+ UseStringDeduplication

XX:MaxGCPauseMillis选项同样的事情,如果我删除StringDeduplication。

运行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) 

知道的任何线索。

回答

4

输入字符时要小心。您–XX:+UseG1GC前的冲刺不是ASCII hyphen/minus,但“En Dash”字符。

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

对于Java命令行选项,你必须始终使用ASCII连字符/减号(U+002D)按时应该是默认的 - 一个普通的键盘上

+1

现在,这是一个“简单的印刷错误”或没有;-) – GhostCat

+1

@GhostCat:是的,但我的解释不适合注释。关闭这个问题仍然是一种选择,虽然......好吧,考虑一下,这不是一个简单的*印刷错误,因为大多数键盘布局不直接支持En Dash。 Mac,也许? – Holger

+0

@Holger很好的细节和很好的回应。我用ASCII连字符代替了En Dash,并且必须在语法开始时移动-XX选项,该选项可以工作。谢谢! – ideaz

相关问题