我使用以下命令行运行Java程序(编辑:在NetBeans 6.8项目属性中)
toto has:"tutu titi"
args是一个包含2个字符串的数组
toto
has:tutu titi
我想(确实有两个参数,第二个)args[1]
是
has:"tutu titi"
我该怎么做?
编辑:我已经尝试使用Netbeans propject属性中“Arguments”行的反斜杠转义引号,但是我得到了args [1]
has:\tutu titi\
答案 0 :(得分:6)
这实际上取决于你的shell。您还没有说过您正在使用的操作系统。例如,在Windows上,这将起作用:
java Test toto "has:\"tutu titi\""
我相信同样的事情也会在bash中发挥作用。
但是如果你问你可以在Java 中做什么来解决这个问题:什么都没有。 shell将在调用进程之前解析命令行,并且您无法撤消该解析。
答案 1 :(得分:3)
我在NetBeans中遇到了类似的问题并找到了解决方案:
将private.properties中的属性“application.args”编辑/添加到:
application.args='has:""tutu titi""'
单引号用于标记“参数”,两个双引号用于定义一个“双引号”。
答案 2 :(得分:1)
使用
toto "has:\"tutu titi\""
答案 3 :(得分:1)
netbeans已将此识别为a bug that won't be fixed!
答案 4 :(得分:1)
如果从NetBeans(7.1.2)Configuration / Arguments对话框字段添加,单引号外部和转义双引号内部为我工作,例如:
my argument