Java python变量中的空格
我有一个变量Java python变量中的空格,java,websphere,jython,wsadmin,Java,Websphere,Jython,Wsadmin,我有一个变量toPath(包含类似C:/ProgramFiles(x86)/bla的路径)。 我将此变量作为参数传递:'[-operation update-contents'+toPath+']' 但是因为我在这个变量中有一个空格,所以我得到了IllegalArgumentException。 如何修复此问题?用双引号传递参数 toPath = "\"C:/Program Files(x86)/bla\""; 用双引号传递参数 toPath = "\"C:/Program Files(x86
toPath
(包含类似C:/ProgramFiles(x86)/bla的路径)。
我将此变量作为参数传递:'[-operation update-contents'+toPath+']'
但是因为我在这个变量中有一个空格,所以我得到了IllegalArgumentException。
如何修复此问题?用双引号传递参数
toPath = "\"C:/Program Files(x86)/bla\"";
用双引号传递参数
toPath = "\"C:/Program Files(x86)/bla\"";
试一试
试一试
我不确定,但看起来你正试图犯一个典型的新手错误
如果您试图运行由多个变量生成的命令,则很容易受到注入攻击。要防止出现这种情况,请使用模块并将所有参数作为列表提交。该模块将负责所有的东西,使其与空间以及工作
例如,ls-l
应按以下方式运行:
subprocess.call(["ls", "-l"])
您的示例包含[]
,可能会有很大的不同,但如果没有它,则会是:
subprocess.call(['-operation','update', '-contents', toPath])
请注意,除了子流程模块中的call()
(仅返回返回代码)之外,还有其他函数。我不确定,但看起来您正试图犯一个典型的新手错误
如果您试图运行由多个变量生成的命令,则很容易受到注入攻击。要防止出现这种情况,请使用模块并将所有参数作为列表提交。该模块将负责所有的东西,使其与空间以及工作
例如,ls-l
应按以下方式运行:
subprocess.call(["ls", "-l"])
您的示例包含[]
,可能会有很大的不同,但如果没有它,则会是:
subprocess.call(['-operation','update', '-contents', toPath])
请注意,除了子流程模块中的call()
(仅返回返回代码)之外,还有其他函数。您到底想做什么?代码是什么样子的?我们需要更多的信息来帮助你。请编辑您的问题。toPath
是一个字符串。对吗?如果是,您提到的错误原因是不正确的。你能告诉我类型(toPath)
的输出吗?@MoinuddinQuadri这可能是stringi的副本。你试图通过shell执行此命令吗?您正在使用子流程
模块。对吗?尝试以下操作:子流程。检查调用(['-operation'、'update'、'-contents',toPath])
并让我知道它是否解决了问题。您到底想做什么?代码是什么样子的?我们需要更多的信息来帮助你。请编辑您的问题。toPath
是一个字符串。对吗?如果是,您提到的错误原因是不正确的。你能告诉我类型(toPath)
的输出吗?@MoinuddinQuadri这可能是stringi的副本。你试图通过shell执行此命令吗?您正在使用子流程
模块。对吗?尝试以下操作:子流程。检查调用(['-operation'、'update'、'-contents',toPath])
并让我知道它是否解决了问题。