单引号作为 Java 程序的参数

Single quotation marks as arguments to a Java program

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

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

我得到 args = [-fn=Something]。所以,问题是它错过了引号。双引号也是如此。

我该怎么做才能解决这个问题?我在 Internet 上找不到任何解决方案。

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

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

转义引号:

java -jar myapp.jar -fn="\'Something\'"
java -jar myapp.jar -fn="\"Something\""

带单引号和双引号:

java -jar myapp.jar -fn='"Something"'

如果你想创建一个控制台程序,我可以推荐Picocli or Spring Shell. Otherwise, you could use e.g. the Commons CLI解析参数,或者你可以自己手动完成。