通过java执行linux命令时出错-操作员>;未为参数类型java.lang.String定义
我试图通过Java API运行一个shell命令,但我得到一个错误-“运算符>对于参数类型Java.lang.String是未定义的” 我不确定上述声明是否有遗漏。如有任何想法,将不胜感激。谢谢通过java执行linux命令时出错-操作员>;未为参数类型java.lang.String定义,java,linux,Java,Linux,我试图通过Java API运行一个shell命令,但我得到一个错误-“运算符>对于参数类型Java.lang.String是未定义的” 我不确定上述声明是否有遗漏。如有任何想法,将不胜感激。谢谢 .exec("$commandString . " 2> " . $stderr_file . " > " . $stdout_file, $output, $rcode"); ^--start/end-----^
.exec("$commandString . " 2> " . $stderr_file . " > " . $stdout_file, $output, $rcode");
^--start/end-----^ what's this for? --^
java string
现在您完成java字符串,进入2>
,这对java来说没有任何逻辑意义。也许你的意思更像
.exec("$commandString" . " 2> " . $stderr_file . " > " . $stdout_file, $output, $rcode");
^---
但请注意,即使这样也没有意义。对于构建字符串,可以使用
+
,而不是
。这是Java,不是PHP。您需要转义作为命令一部分的引号,$name
也是字符串文字,不会被名为name
的变量的内容替换。另外,>2
是一个特定于shell的选项,即它告诉shell转移命令的stderr,它作为exec
命令的一部分没有任何意义。与
相同。这些字符串将像其他任何参数一样传递给命令。
.exec("$commandString" . " 2> " . $stderr_file . " > " . $stdout_file, $output, $rcode");
^---