单引号作为Java程序的参数

单引号作为Java程序的参数,java,args,quotation-marks,Java,Args,Quotation Marks,当我以这种方式从cmd运行jar时: java-jarmyapp.jar-fn='Something' 我得到args=[-fn=Something]。所以,问题是它没有打上引号。双引号也是如此 我能做些什么来解决这个问题?我在互联网上找不到任何解决方案 另一个问题是,我是否可以让我的程序自动识别-fn变量,或者我应该像解析字符串一样解析它。我正在使用解析方法,但我只想知道是否还有其他(更合乎道德的)方法。有两种不同的方法来解决引号问题: 通过转义引用: java-jar myapp.jar-

当我以这种方式从cmd运行jar时:

java-jarmyapp.jar-fn='Something'
我得到
args=[-fn=Something]
。所以,问题是它没有打上引号。双引号也是如此

我能做些什么来解决这个问题?我在互联网上找不到任何解决方案


另一个问题是,我是否可以让我的程序自动识别-fn变量,或者我应该像解析字符串一样解析它。我正在使用解析方法,但我只想知道是否还有其他(更合乎道德的)方法。

有两种不同的方法来解决引号问题:

通过转义引用:

java-jar myapp.jar-fn=“\'Something\”
java-jar myapp.jar-fn=“\”某物“
使用单引号和双引号:

java-jarmyapp.jar-fn=''Something''

如果您想创建一个控制台程序,我可以推荐或。否则,您可以使用(例如)来解析参数,也可以自己手动进行。

使用反斜杠(如-
\'Something\”
对单引号进行转义并尝试一下。这是唯一的解决方案吗?@RaduAramă这是您正在使用的shell的问题,而不是java的问题。好的。非常感谢。我只是有一个特定的任务,让程序专门接受这些类型的输入,比如-fn='Something',但我认为这是一个错误picocli()可以用来创建交互式shell程序以及简单的CLI命令(带有子命令、颜色和自动完成)。不确定是否应建议使用Commons CLI:-)(但我有偏见……:-)