传递给Java main()的命令行参数中的引号

传递给Java main()的命令行参数中的引号,java,netbeans,escaping,quotes,Java,Netbeans,Escaping,Quotes,我使用以下命令行运行Java程序(编辑:在NetBeans 6.8项目属性中) args是由2个字符串组成的数组 toto has:tutu titi 我希望(事实上是两个参数,第二个)args[1] has:"tutu titi" 我该怎么做 编辑:我已经尝试从Netbeans Project属性中的“Arguments”行用反斜杠转义引号,但是我得到了args[1] has:\tutu titi\ 这真的取决于你的外壳。你还没有说你使用的是什么操作系统。例如,在Windows上,这将起

我使用以下命令行运行Java程序(编辑:在NetBeans 6.8项目属性中)

args是由2个字符串组成的数组

toto
has:tutu titi
我希望(事实上是两个参数,第二个)
args[1]

has:"tutu titi"
我该怎么做

编辑:我已经尝试从Netbeans Project属性中的“Arguments”行用反斜杠转义引号,但是我得到了args[1]

has:\tutu titi\

这真的取决于你的外壳。你还没有说你使用的是什么操作系统。例如,在Windows上,这将起作用:

java Test toto "has:\"tutu titi\""
我相信同样的事情也会在bash中起作用

但是,如果您问在Java中可以做些什么来解决这个问题:什么都不做。shell将在调用进程之前解析命令行,您无法撤消该解析。

使用

toto "has:\"tutu titi\""

我在NetBeans中遇到了类似的问题,并找到了解决方案:

编辑/添加private.properties中的属性“application.args”到:

application.args='has:""tutu titi""'

单引号用于标记“参数”,两个双引号用于定义一个“双引号”。

这已被netbeans确认为

如果从NetBeans(7.1.2)配置/参数对话框字段添加,则单引号外部和转义双引号内部对我有效,例如:

my argument

在shell中,has:“tututiti”已经被认为是一个单独的参数。不需要在引号周围添加额外的引号。@rds:当您转义引号时,就需要添加额外的引号。您是否有任何可以证实这一事实的链接?如果你能把这些添加到你的答案中,这将使它更加相关。我认为这是链接
my argument